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
   14   15   16   17   18   19   20   21   22   23   24