안녕하세요, Davey 입니다. 오늘 포스팅 할 사항은, ArrayList에 대해서, 설명해 드리겠습니다. 파이썬의 리스트라고 생각하시면 될 거 같습니다.
그럼 ArrayList에 대해서 하나 하나 설명 해 드릴 테니, 천천히 따라오시면 됩니다.
ArrayList 사용
- 여러 값을 List 형태로, 한 인스턴스에, 초기값을 선언하기 위한 함수로써, 인스턴스 생성은 아래 구문으로 생성이 가능합니다.
비슷한 기능으로는 List<>가 있습니다. 차이점으로는, 값의 형식을 따로 선언 할 필요는 없습니다.
: ArrayList "Instance 이름" = new ArrayList();
1) Add를 이용하여, 값 추가 하기
- "Instance 이름".Add ("값")
- 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다.
====================================================================
ArrayList test01 = new ArrayList(); test01.Add(1); test01.Add(2); test01.Add(3); test01.Add(4); for (int i = 0; i < test01.Count; i++) { Console.WriteLine(test01[i]); }
====================================================================
- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, Add 매소드를 통해서, 값이 추가 된 걸 확인 하실 수 있습니다.
2) Insert를 이용하여, 값 추가하기
- "Instance 이름".Insert(index No, "값")
- 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다.
====================================================================
ArrayList test01 = new ArrayList(); test01.Insert(0,100); test01.Insert(1, 200); test01.Insert(2, 300); test01.Insert(3, 400); test01.Insert(4, 500); for (int i = 0; i < test01.Count; i++) { Console.WriteLine(test01[i]); }
====================================================================
- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, Insert 매소드를 통해서, 값이 추가 된 걸 확인 하실 수 있습니다.
3) AddRange를 이용하여 범위의 값을 추가하기
- "Instance 이름".AddRange ("값들을 가지고 있는 ArrayList Instance 이름")
- 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다.
====================================================================
ArrayList test01 = new ArrayList(); test01.Insert(0,100); test01.Insert(1, 200); test01.Insert(2, 300); test01.Insert(3, 400); test01.Insert(4, 500); ArrayList test02 = new ArrayList() // 추가적으로 입력할 ArrayList 그룹인, test02를 선언 { 600, 700 }; test01.AddRange(test02); for (int i = 0; i < test01.Count; i++) { Console.WriteLine(test01[i]); }
====================================================================
- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, AddRange 매소드를 통해서, ArrayList test02안에 있는 모든 값을 한꺼 번에 추가 된 걸 확인 하실 수 있습니다.
3) Remove를 이용하여, 값 삭제하기
- "Instance 이름".Remove ("값")
- 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다.
====================================================================
ArrayList test01 = new ArrayList(); test01.Insert(0,100); test01.Insert(1, 200); test01.Insert(2, 300); test01.Insert(3, 400); test01.Insert(4, 500); ArrayList test02 = new ArrayList() { 600, 700 }; test01.AddRange(test02); test01.Remove(100); test01.Remove(200); test01.Remove(300); for (int i = 0; i < test01.Count; i++) { Console.WriteLine(test01[i]); }
====================================================================
- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, Remove 매소드를 통해서, "100", "200" 삭제 된 것을 확인 하실 수 있습니다.
4) RemoveAt을 이용하여, 값 삭제하기
- "Instance 이름".RemoveAt (값이 위치하는 Index No)
- 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다.
====================================================================
ArrayList test01 = new ArrayList(); test01.Insert(0,100); test01.Insert(1, 200); test01.Insert(2, 300); test01.Insert(3, 400); test01.Insert(4, 500); ArrayList test02 = new ArrayList() { 600, 700 }; test01.AddRange(test02); test01.RemoveAt(0); // 제일 처음에 위치 해 있는 값을 삭제 test01.RemoveAt(0); // 위에 삭제 명령이 실행이 되면, "200" 값이 제일 처음 위치에 있기 때문에 다시, 똑같은 명령어를 수행 test01.RemoveAt(0); // 위에 삭제 명령이 실행이 되면, "300" 값이 제일 처음 위치에 있기 때문에 다시, 똑같은 명령어를 수행 for (int i = 0; i < test01.Count; i++) { Console.WriteLine(test01[i]); }
====================================================================
- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, 3번의 결과 값과 똑같은 걸 확인 할 수 있습니다. 명령어를 실행하고, 값의 위치도 생각해서 명령어를 구현해야 합니다.
5) RemoveRange를 이용하여, 값 삭제하기
- "Instance 이름".RemoveRange ("값들을 가지고 있는 ArrayList Instance 이름")
- 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다.
====================================================================
ArrayList test01 = new ArrayList(); test01.Insert(0,100); test01.Insert(1, 200); test01.Insert(2, 300); test01.Insert(3, 400); test01.Insert(4, 500); ArrayList test02 = new ArrayList() { 600, 700 }; test01.AddRange(test02); test01.RemoveRange(1,6); // index 1부터 6전까지의 값을 모두 삭제 for (int i = 0; i < test01.Count; i++) { Console.WriteLine(test01[i]); }
====================================================================
- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, index 1부터 6전까지의 값을 모두 삭제된 것을 확인 하실 수 있습니다. 결국 index "0" 자리에 있는 "100" 만 남은 것입니다.
6) ArrayList 값을 다른 변수로 입력
- (숫자 타입) int a = (int) "Instance 이름"[Index No]
- (문자 타입) string b = (string) "Instance 이름"[Index No]
- (var 타입) var c = (int or string) "Instance 이름"[Index No]
- 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다.
====================================================================
ArrayList test01 = new ArrayList(); test01.Insert(0,100); test01.Insert(1, "200"); test01.Insert(2, 300); test01.Insert(3, 400); test01.Insert(4, 500); ArrayList test02 = new ArrayList() { 600, 700, "test01_string" }; test01.AddRange(test02); for (int i = 0; i < test01.Count; i++) { Console.WriteLine(test01[i]); } int a = (int)test01[0]; // int Type의 변수 a에, "100"을 입력 string b = (string)test01[1]; // string Type의 변수 b에, "200"을 입력 var c = (int)test01[2]; // var Type의 변수 c에, string Type의 "200"을 입력 Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c); Console.ReadKey();
===========================================
- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, 각 변수 타입 별로 값이 입력된 것을 확인 할 수 있습니다. var Type으로 선언한, "c" 변수는 변수 입력할 때 선언하는 값 Type에 따라 변경이 가능합니다.
7) ArrayList 안에 존재하는 값의 갯수를 출력하기
- "Instance 이름".Count
- 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다.
====================================================================
ArrayList test01 = new ArrayList(); test01.Insert(0,100); test01.Insert(1, "200"); test01.Insert(2, 300); test01.Insert(3, 400); test01.Insert(4, 500); ArrayList test02 = new ArrayList() { 600, 700, "test01_string" }; test01.AddRange(test02); for (int i = 0; i < test01.Count; i++) { Console.WriteLine(test01[i]); } Console.WriteLine("Number of values in test01 ; "); Console.WriteLine(test01.Count); Console.ReadKey();
====================================================================
- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. 즉, test01 에 들어있는 값의 개수를 확인 할 수있습니다. 안에 무슨 타입이든, 값의 개수로만 출력을 합니다.
8) Sort, Reverse를 이용하여, 값들의 오름차순 or 내림차순 정렬하기
- "Instance 이름".Sort (오름차순 정렬)
- "Instance 이름".Reverse (내림차순 정렬)
- 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다.
====================================================================
ArrayList test01 = new ArrayList(); test01.Insert(0,100); test01.Insert(1, 200); test01.Insert(2, 300); test01.Insert(3, 400); test01.Insert(4, 500); ArrayList test02 = new ArrayList() { 600, 700 }; test01.AddRange(test02); for (int i = 0; i < test01.Count; i++) { Console.WriteLine(test01[i]); } Console.WriteLine("Number of values in test01 :"); Console.WriteLine(test01.Count); Console.WriteLine("Sorted test01 :"); test01.Sort(); // 오름차순으로 정렬 for (int i = 0; i < test01.Count; i++) { Console.WriteLine(test01[i]); } Console.WriteLine("Reversed test01 :"); test01.Reverse(); // 내림차순으로 정렬 for (int i = 0; i < test01.Count; i++) { Console.WriteLine(test01[i]); } Console.ReadKey();
====================================================================
- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. Sort는 오름차순으로 정렬하고, Reverse는 내림차순으로 정렬해서, 출력하는 걸 확인 할 수 있습니다.
9) Contain 를 이용하여, 값들의 존재 여부 알아보기
- "Instance 이름".Contain("확인하고자 하는 값")
- 더 나은 이해를 돕기 위해서, 간단한 예제를 통해서, 추가 설명해드리도록 하겠습니다.
====================================================================
ArrayList test01 = new ArrayList(); test01.Insert(0,100); test01.Insert(1, "200"); test01.Insert(2, 300); test01.Insert(3, 400); test01.Insert(4, 500); ArrayList test02 = new ArrayList() { 600, 700, "test01_string" }; test01.AddRange(test02); for (int i = 0; i < test01.Count; i++) { Console.WriteLine(test01[i]); } Console.WriteLine("Check if there is 100 in test01 ; "); Console.WriteLine(test01.Contains(100)); // Contains 매소드를 이용해서, 100이 존재하는지 확인 할 수 있습니다. 만약에 있으면, "true" 를, 없으면 "false"를 출력합니다. Console.ReadKey();
====================================================================
- 위 Code를 구동하게 되면 아래와 같은 결과 값을 확인 할 수 있습니다. test01안에 100이 존재하므로, "true"를 출력하게 됩니다.
이상입니다. 개인적으로, ArrayList와 다른 함수도 같이 정리하려고 했는데, ArrayList만 해도 정말 분량이 많은 거 같습니다. 위 예제를 눈으로만 보지 마시고, 항상 실습을 해보셔야 합니다! 그럼 오늘도 C# Programmer가 되는 그 날까지, 열심히 공부하고, 같이 성장하시죠! 감사합니다.
제 Posting이 조금이나마 정보 전달에 도움이 되셨길 빌며, 되셨다면, 구독, 댓글, 공감 3종 세트 부탁 드립니다. 감사합니다.
[저작권이나, 권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다. 검토 후 수정 및 삭제 조치 하도록 하겠습니다. 그리고, 기재되는 내용은 개인적으로 습득한 내용이므로, 혹 오류가 발생할 수 있을 가능성이 있으므로, 기재된 내용은 참조용으로만 봐주시길 바랍니다. 게시물에, 오류가 있을때도, Comment 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.]
'C# > C# 일반 & Basic (General & Basic)' 카테고리의 다른 글
C# 프로그래머 되기 접근 한정자 개념, 클래스 형식 변화 그리고 is 와 as 개념 (0) | 2021.03.04 |
---|---|
C# 프로그래머 되기 기반 클래스, 파생 클래스, 그리고 this 개념 (0) | 2021.03.04 |
C# 프로그래머 되기 - 클래스 Class 란 (0) | 2021.03.03 |
C# 프로그래머 되기 가변 매개변수 (1) | 2021.03.03 |
C# 프로그래머 되기 string 변수 상수 선언 입력 구문 (0) | 2021.03.03 |
댓글