C#에서 ArrayList은 가변 크기의 배열을 나타내는 동적 배열 클래스이다.
ArrayList은 System.Collections
네임스페이스에서 제공된다.
이 클래스는 배열과 유사하지만 크기를 동적으로 조정할 수 있는 장점이 있다.
Array처럼 값을 차곡차곡 추가하는 자료구조.
ArrayList의 주요 특징은 아래와 같다.
System.Collections
네임스페이스에서 제공된다. 모든 유형의 객체를 저장할 수 있으며, 요소는 object 타입으로 다루어진다.System.Collections.Generic
네임스페이스에서 제공된다.① 리스트명.Remove
(삭제할 데이터)
삭제 시에 정렬을 다시해야하기 때문에, 부하가 있을 수 있다.
② 리스트명.RemoveAt
(데이터 위치)
삭제할 데이터의 위치를 참조하여, 제거한다.
③ 리스트명.RemoveRange
(인덱스 시작, 인덱스 끝)
인덱스를 참조하여, 해당 범위를 제거한다.
④ 리스트명.Insert
(인덱스, 데이터)
: 해당 위치에 데이터를 입력한다, insert 역시도 값을 넣을 때, 정렬을 해야하므로 부하가 클 수 있다.
리스트명.Add
(데이터)
: 데이터를 추가하는 함수.
⑤ 리스트명.Count
: 해당 어레이 리스트의 크기를 인트형으로 반환한다.
⑥ 리스트명.Reverse
() // 리스트명.Reverse(인덱스 시작, 인덱스 끝)
: 해당 리스트의 데이터 순서를 뒤바꾼다. // 리버스 시작점과 종료점을 설정하여 바꿀 수 있다.
⑦ 리스트명.Sort
()
: 리스트를 내림차순으로 정렬한다.
Sort()함수에는 사용자가 정의한 comparar를 파라미터로 입력받을 수 있다.
위 코드는, 오름차순으로 정렬하게 만드는 Comparar이다.
비단, 오름차순 뿐만 아니라. 특정 조건(Key값)을 이용하여 정렬할 수도 있다.
기존의 Sort함수는 내림차순으로만 정렬하나,
파라미터를 입력받아 오름차순을 받을 수 있다.
단,
Sort된 함수를 Reverse를 이용하여, 오름차순으로 바꿀 수 있다.
⑧ 리스트명.BinarySearch()
: 데이터의 인덱스를 반환하는 함수.
바이너리 서치를 사용하기 전에는 반드시 Sorting이 완료된 상태여야 한다.
즉, Sort()함수를 선행하여 사용한 후에, BinarySerch를 사용한다.
리스트 내에 찾는 값이 없다면, -1을 반환한다.
⑨
Enumerator가 어레이 리스트의 시작점을 찾아줌. 무브를 이용하여, 다음 값, 다음 값을 불러옴
⑩ 리스트명.Contains(데이터)
리스트 내에 데이터가 있는지 탐색하는 함수.
값이 있다면 true 없다면 false로 나타낸다.
⑪ArrayList역시 배열 등을 바로 초기화 할 수 있다.