본문 바로가기

Programming/C#

C# 컬렉션 알아보기 - ArrayList & 메서드

반응형

앞에서 알아본 배열은 크기를 미리 지정해야만 사용할 수 있었습니다. 비록 가변 배열을 사용하므로 약간에 유동성을 주었지만 행의 크기는 결정한 상태에서 사용해야 했습니다. 하지만, 컬렉션의 ArrayList는 배열과 비슷하지만 크기를 지정하지 않고 사용할 수 있다는 장점이 있습니다. 이번에는 이 ArrayList에 대해 알아보겠습니다.

 

C# 가변 배열 선언, 생성 및 초기화

 

C# 가변 배열 선언, 생성 및 초기화

이전 글에서 이차원 배열에 대해 알아보았습니다. 이차원 배열 이상을 다차원 배열이라고 부르는데 이차원 배열과 비슷한 구조를 가집니다. 이번에는 배열을 요소로 가지는 가변 배열에 대해

mr-johndoe.tistory.com

 

C# 일차원 배열 생성 및 선언하고 초기화

 

C# 일차원 배열 생성 및 선언하고 초기화

배열은 같은 데이터 형인 변수들의 모임으로 생각하시면 됩니다. 호텔을 생각하시면 각 층마다 방들이 있습니다. 각 층은 배열에서 행에 해당한다고 생각하시고 방들은 열에 생각하시면 이해가

mr-johndoe.tistory.com

 

 

 

 

1. ArrayList

ArrayList를 사용하기 위해서는 네임스페이스 System.Collections를 using을 이용하여 사용 선언을 해야 합니다. 

 

사용방법은 다음과 같습니다.

 

  ArrayList 변수명 = new ArrayList( );

 

new를 사용하여 ArrayList를 선언합니다. ArrayList는 어떠한 데이터형의 변수도 받을 수 있습니다. 이는 ArrayList는 데이터를 받아들일 때 모두 Object형으로 받아들이기 때문입니다.

 

2. ArrayList의 메서드

 2.1 Add

  ArrayList의 Add 메서드는 지정한 인덱스에 데이터를 추가할 경우 사용합니다.

 

 사용방법은 다음과 같습니다.

 

    ArrayList.Add(인덱스 번호)

 

 2.2 RemoveAt

  ArrayList의 RemoveAt 메서드는 지정한 인덱스에 저장된 데이터와 해당 메모리를 제거할 때 사용합니다.

 

 사용방법은 다음과 같습니다.

 

    ArrayList.RemoveAt(인덱스 번호)

 

 2.3 Remove

  ArrayList의 Remove 메서드는 지정한 데이터를 ArrayList 메모리에서 찾아 동일한 데이터가 저장되어 있는 첫번째 인덱스의 데이터와 메모리를 제거할 때 사용합니다.

 

 사용방법은 다음과 같습니다.

 

    ArrayList.Remove(데이터 값)

 

 2.4 Insert

  ArrayList의 Insert 메서드는 지정한 인덱스에 지정한 데이터를 추가할 때 사용합니다. 

 

 사용방법은 다음과 같습니다.

 

    ArrayList.Insert(인덱스 번호, 데이터 값)

 

 

 

3. 예제를 통해 ArrayList 확인

Visual Studio를 실행시키시고 C# 콘솔 애플리케이션을 추가하시고 코드 입력창에서 다음과 같이 입력합니다.

 

using System;

using System.Collections;

 

   namespace 컬렉션

   {

      class Program

      {

 

         static void Main(string[] args)

         {

            ArrayList alist = new ArrayList();

 

            alist.Add(0);

            alist.Add(1);

            alist.Add("a");

            alist.Add("b");

            alist.Add(1);

 

            for (int i = 0; i < 5; i++)

                 Console.Write(alist[i]);

            Console.Write("\n");

 

            alist.Insert(1, "c");

 

            for (int i = 0; i < 6; i++)

                 Console.Write(alist[i]);

            Console.Write("\n");

 

            alist.RemoveAt(1);

 

            for (int i = 0; i < 5; i++)

                 Console.Write(alist[i]);

            Console.Write("\n");

 

            alist.Remove(1);

 

            for (int i = 0; i < 4; i++)

                 Console.Write(alist[i]);

            Console.Write("\n");

            }

 

      }

}

 

위 코드를 실행하시면 다음과 같은 결과가 화면에 출력됩니다.

 

01ab1

0c1ab1

01ab1

0ab1

 

 

 

코드를 살펴보시면, 

 

ArrayList alist = new ArrayList();

   => new를 이용하여 alist란 이름으로 ArrayList를 선언하였습니다.

 

alist.Add(0);

alist.Add(1);

alist.Add("a");

alist.Add("b");

alist.Add(1);

   => Add 메서드를 이용하여 alist에 0, 1, a, b, 1을 데이터로 입력하였습니다.

 

for (int i = 0; i < 5; i++)

                 Console.Write(alist[i]);

   => alist에 입력되어 있는 데이터를 화면에 출력하였습니다. 그 결과 01ab1이 화면에 출력됩니다.

 

alist.Insert(1, "c");

  => alist의 인덱스 1번 메모리를 추가하면서 데이터로 c를 입력합니다.

       다음 for문에서 alist의 데이터를 화면에 출력하도록 하였으며, 그 결과 0c1ab1이 화면에 출력됩니다.         두 번째 값으로 c가 추가된 것을 보실 수 있습니다.

 

alist.RemoveAt(1);

  => alist의 인덱스 1번 메모리를 제거합니다.

      다음 for문에서 alist의 데이터를 화면에 출력하도록 하였으며, 그 결과 01ab1이 화면에 출력됩니다.

      인덱스 번호 1번인 두 번째 데이터 c가 삭제된 것을 보실 수 있습니다.

 

alist.Remove(1);

  => alist의 데이터 중 1인 인덱스를 삭제하라는 의미입니다.

      다음 for문에서 alist의 데이터를 화면에 출력하도록 하였으며, 그 결과 0ab1이 화면에 출력됩니다.

      alist의 데이터 중 1인 인덱스 번호는 1번과 4번인데 가장 첫 번째 인덱스 번호인 1번이 삭제되었음을

      보실 수 있습니다.

 

반응형