참고 : http://blog.eairship.kr/150 ( 누구나가 다 이해할 수 있는 프로그래밍 첫걸음 블로그 )
컬렉션 : 배열 리스트(ArrayList) , 해시 테이블(Hash table), 큐(Queue), 스택(Stack) 등
ArrayList 클래스
- 네임 스페이스 : System.Collections
- 크기가 필요에 따라 동적으로 증가되는 배열을 사용하여 IList 인터페이스를 구현합니다.
- 정렬되어있지 않을 수 있으므로, BinarySearch 와 같은 작업을 수행하기 전에는 정렬해야 합니다.
- 정수 인덱스를 사용하여 값에 접근할 수 있습니다. ( 0 부터 시작 )
- Null 참조를 유효한 값으로 받아들이며 중복 요소를 허용합니다.
- Add, BinarySearch, Clear, Contain, Insert, Remove, Sort.. 등의 메소드 존재
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | using System; using System.Collections; public class SamplesArrayList { public static void Main() { // Creates and initializes a new ArrayList. ArrayList myAL = new ArrayList(); myAL.Add("Hello"); myAL.Add("World"); myAL.Add("!"); // Displays the properties and values of the ArrayList. Console.WriteLine( "myAL" ); Console.WriteLine( " Count: {0}", myAL.Count ); Console.WriteLine( " Capacity: {0}", myAL.Capacity ); Console.Write( " Values:" ); PrintValues( myAL ); } public static void PrintValues( IEnumerable myList ) { foreach ( Object obj in myList ) Console.Write( " {0}", obj ); Console.WriteLine(); } } /* This code produces output similar to the following: myAL Count: 3 Capacity: f Values: Hello World ! */ | cs |
해시 테이블(Hashtable)
- 키와 값을 가진 요소를 다루는 사전 구조
- 빠른 검색이 가능, 사용이 편리
- foreach문은 컬렉션에 있는 각 요소의 형식(DictionaryEntry)을 필요. ( 읽기만 가능 )
- Add, Clear, Contains, CopyTo, Remove, GetHash .. 등의 메소드 존재
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication36 { class Program { static void Main(string[] args) { Hashtable table = new Hashtable(); table.Add("사과", "apple"); table.Add("토마토", "tomato"); table["감자"] = "potato"; foreach (object obj in table.Keys) Console.WriteLine("{0}: {1}", obj, table[obj]); } } } | cs |
결과 : 감자: potato
사과: apple
토마토: tomato
큐(Queue)랑 스택(Stack)도 있숩!
'NOTE > Programming' 카테고리의 다른 글
[C#] abstract(추상) 클래스의 위험성. (0) | 2018.04.01 |
---|---|
[C#] Reflection && Attributes (0) | 2018.04.01 |
[C#] 예외처리 (0) | 2018.04.01 |
[C#] 인터페이스 (0) | 2018.04.01 |
[C#] 확장 메소드, 분할 클래스, 중첩 클래스 (0) | 2018.04.01 |