[C# 기초강의] Ch 10. 배열과 컬렉션 그리고 인덱서

728x90
https://www.youtube.com/watch?v=lgyrCKJV2Ls&list=PLVsNizTWUw7GN8wPRhclbKuQa9aI9Cj2V&index=11

 

📌 배열

  • 같은 형식의 복수 인스턴스를 저장할 수 있는 형식
  • 참조형식으로 연속된 메모리 공간을 가리킴
  • 반복문, 특히 for / foreach문과 함께 사용하면 효율 향상
  • [] 안에 배열의 크기를 지정하여 선언
데이터형식[] 배열이름 = new 데이터형식 [용량];

◾ 배열의 초기화 방법

string[] array1 =new string[3] {"안녕", "하이", "hello");

string[] array2 = new string[] {"안녕", "하이", "hello");

string[] array3 =  {"안녕", "하이", "hello");

◾ System.Array 클래스

  • 모든 배열의 기반 클래스이며 배열 그 자체를 나타냄
  • 배열을 보다 편리하게 다룰 수 있게 도와주는 유틸리티 메서드 제공
  • 정렬, 탐색, 크기조정 등의 기능 제공

◾ 다차원배열 -2차원배열

  • 2개의 차원(세로, 가로)으로 요소 배치
  • 차원의 길이를 뒤에서부터 읽어 해석
    int[2,3] : 길이가 3인 1차원 배열을 요소로 갖는 길이가 2인 2차원배열

◾ 가변 배열(jagged Array)

  • 배열의 배열
  • 요소로 입력되는 배열의 차원과 길이는 달라도 됨
데이터형식[][] 배열이름 = new 데이터형식 [ 가변배열의 용량 ] [];



📌 컬렉션(Collection)

  • 같은 성격을 띄는 데이터의 모음을 다루는 자료 구조
  • 배열도 .net이 제공하는 컬렉션 자료구조 중 하나

◾ 컬렉션 - ArrayList

  • 인덱스를 이용하여 요소에 접근
  • 동적으로 크기가 증가
  • add() : 요소 추가
    RemoveAt() : 삭제
    Insert() : 삽입
ArrayList list = new ArrayList();
list.add(10);
list.add(20);
list.add(30);

list.Remove(1); //20 삭제됨

list.Insert( 25, 1) //25를 1번 인덱스에 삽입

◾ 컬렉션 - Queue

  • 선입선출 구조의 자료구조
  • Enqueue() : 데이터 입력
    Dequeue() : 데이터 출력
Queue que = new Queue();
que.Enqueue(10);

◾ 컬렉션 - Stack

  • 선입후출 구조의 자료구조
  • push() : 데이터입력
    Pop : 데이터 출력
Stack stack = new Stack();

stack.Push(1);

◾ 컬렉션 - Hashtable

  • 키와 값으로 이루어진 데이터를 다룰 때 사용
  • 키를 해싱해서 테이블 내의 주소를 계산
  • 배열처럼 다루기 간편하고 탐색속도 빠름
Hashtable ht = new Hashtable();

ht["book] = "책";

console.WriteLine(ht["book"]);

📌 인덱서

  • 인덱스를 이용해 객체 내 데이터에 접근하게 해주는 프로퍼티
class 클래스이름
{
	한정자 인덱서형식 this [형식 index]
    {
    	get
        {
        	//인덱스를 활용하여 내부 데이터 반환
        }
        
        set
        {
        	//인덱스를 이용해 내부 데이터 저장
        }
	}
}
728x90