안녕하세요! 극꼼입니다!
오늘부터는 Collection중 List와 ArrayList에 대해 배워보겠습니다 ㅎㅎ
* Collection : https://geukggom.tistory.com/95
[서론]
자료구조 : 데이터를 구조적으로 구현하는 알고리즘
Collection : C#에서 지원하는 자료구조 클래스. List, ArrayList, Dictionary, HashTable, Stack, Queue 등이 있음.
서로 유사한 자료구조인 List와 ArrayList를 먼저 살펴봅시다.
Array | List | ArrayList |
- 고정된 배열 크기 (선언시 크기를 지정해주고, 삭제 및 추가와 같은 변형이 불가능하다.) - 같은 타입만 저장가능 - 다차원 배열 입력이 가능 |
- 배열크기가 고정되지 않음(삭제, 추가 가능) | |
- 같은 타입끼리만 저장 가능. 따라서 박싱, 언박싱이 발생하지 않음. | - 서로 다른 타입의 데이터를 배열에 저장 가능. 따라서 데이터를 가져올 때 박싱, 언박싱이 발생함. |
[List]
1. List 선언
List<데이터타입> 변수이름 = new List<>();
리스트를 처음 선언했을 때, 리스트의 길이는 0입니다.
여기에 Add 키워드를 사용해서 리스트 안에 데이터를 입력해줍니다.
2. Add(배열 추가)
List<string> myString = new List<>();
myString.Add("one");
myString.Add("two");
myString.Add("three");
myString : [0]"one", [1]"two", [2]"three"
새로 추가하는 데이터값들은 배열의 뒤에 추가됩니다.
3. Index(배열 삽입)
myString.Insert(0,"Insert");
0번 인덱스에 "Insert"를 삽입해줍니다.
기존의 0번 인덱스에 있던 데이터값은 1번 인덱스로 가는 등, 하나씩 뒤로 밀려나게 됩니다.
myString : [0]"Insert", [1]"one", [2]"two", [3]"three"
4. Remove, RemoveAt(배열 삭제)
myString.Remove("two"); //데이터를 찾아서 삭제. myString : [0]"Insert", [1]"one", [2]"three"
myString.RemoveAt(0); //해당하는 인덱스의 데이터 삭제. myString : [0]"one", [1]"three"
5. Contains(리스트 안에 데이터가 있는지 찾아서 true/false 반환)
Debug.Log(myString.Contains("three")); //true 출력.
6. BinarySearch(List안의 데이터가 몇번 인덱스에 있는지 인덱스를 반환)
Debug.Log(myString.BinarySearch("three")); //1번 출력.
7. Clear(리스트 초기화)
myString.Clear();
Debug.Log(myString.Count); //0개 출력.
8. Sort(정렬)
: 배열을 정렬해주는 함수입니다.
int 타입이라면 오름차순으로, string(또는 char) 타입이라면 알파벳순으로 정렬해줍니다.
[ArrayList]
ArrayList는 List와 유사한 자료구조입니다.
List와 다른 점은, List는 선언할 때 데이터타입이 고정되지만, ArrayList는 여러 데이터타입을 넣을 수 있다는 점입니다.
따라서 ArrayList를 사용할 경우 성능이 더 많이 저하되며, 특별한 경우를 제외하고는 잘 사용하지 않습니다.
ArrayList item = new ArrayList();
item.Add("string");
item.Add(3);
item.Add('c');
// item : [0]"string", [1]3, [2]'c' (이와 같이 여러 종류의 데이터를 모두 넣을 수 있습니다.)
'[Unity] > [C#]' 카테고리의 다른 글
[C#] 컬렉션(Collection) (0) | 2021.07.19 |
---|---|
[C#] .NET FrameWork(닷넷 프레임워크) (0) | 2021.07.18 |
[C# 기초] #10 : 배열(Array)(feat.배열의 길이 변경) (0) | 2021.07.15 |
[C#] var 자료형 (0) | 2021.07.14 |
[C# 기초] #09 : 반복문(for문, foreach문, while문) (0) | 2021.07.13 |