Page 19 -
P. 19
예제 2-1 배열을 이용하여 이름을 저장하고 출력하는 예 ▶ NamesWithArray.cs
static string[] GenerateNames()
{
string[] names = new string[4]; 배열을 생성할 때 크기를 미리 알아야 한다.
names[0] = "Gamma";
names[1] = "Vlissides";
names[2] = "Johnson";
names[3] = "Helm";
return names;
}
static void PrintNames(string[] names)
{
foreach (string name in names)
{
Console.WriteLine(name);
}
}
여기서는 배열 초기화 구문을 사용하지 않았다. 파일을 읽어오는 것처럼, 이름을 개별적으로 하나
씩 가져오는 경우를 고려해서 코드를 작성했기 때문이다. 배열을 초기화할 때는 배열의 크기를 미
리 지정해야 한다. 실제로 파일에서 이름을 읽어온다면, 파일 내에 몇 개의 이름이 존재하는지 사
전에 확인하거나 꽤나 복잡한 코드를 작성해야만 한다. 즉, 배열 하나를 만들고 그 배열이 가득차
면 그보다 좀 더 큰 배열을 할당한 후 이전 배열의 내용을 복사하는 방식을 반복하는 것이다. 이름
을 모두 읽었다면 저장된 이름의 개수보다 배열의 크기가 클 것이므로, 정확히 필요한 배열의 크
기를 계산한 후 이에 맞춰 새로운 배열을 생성하고 이름을 복사한다. 그리고 이렇게 생성된 배열
을 반환하는 식이다.
배열의 크기를 추적하고 배열을 재할당하는 등의 작업은 매우 반복적이어서 캡슐화할 수 있을 것
같다. 사실 이러한 작업을 내부적으로 수행해 주는 타입이 바로 ArrayList다.
예제 2-2 ArrayList를 이용하여 이름을 저장하고 출력하는 예 ▶ NamesWithArrayList.cs
static ArrayList GenerateNames()
{
ArrayList names = new ArrayList();
names.Add("Gamma");
names.Add("Vlissides");
names.Add("Johnson");
names.Add("Helm");
return names;
060