개발자 성장일지
Part 배열 && 컬렉션 본문
1. 배열
- 같은 형식의 복수 인스턴스를 저장할 수 있는 형식
- 참조형식으로써 연속된 메모리 공간을 가리킴
- 반복문, 특히 for/foreach문과 함께 사용하면 효율 향상
- 꺽쇠 괄호 []안에 배열의 크기를 지정하여 다음과 같이 선언
1) 배열 초기화 방법
1. 기본
- 배열의 원소 개수를 명시
- 배열의 각 원소에 입력될 데이터를 입력 {}으로 감싼 블록을 붙임
2. 요소개수 생략
- 배열의 요소 개수 생략
- 배열의 각 원소에 입력될 데이터를 입력 {}으로 감싼 블록을 붙임
3. new 연산자 형식, 요소개수생략
- new 연산자, 형식과 괄호 {}, 배열의 용량을 모두 생략
- 배열의 각 원소에 입력될 데이터를 입력 {}으로 감싼 블록을 붙임
2) 다차원 배열 - 2차원 배열
- 2개의 차원(세로+가로)으로 요소 배치
- 차원의 길이를 뒤에서부터 읽어 해석
- 배열의 세 가지 초기화 방법 모두 사용가능
3) 가변 배열
- 배열의 배열, 즉 배열을 요소로 갖는 배열
- 요소로 입력되는 배열의 차원과 길이는 같아야 할 필요 없음
- 가변 배열 선언 형식
2. 컬렉션
1) ArrayList
- 배열과 같이 인덱스를 이용하여 요소에 접근가능
- 필요에 따라 동적으로 크기가 증가
- 요소를 추가하는 Add(), 삭제하는 RemoveAt(), 삽입하는 Insert() 메소드 등을 제공
2) Queue
- 선입선출 구조의 자료구조
- 데이터를 입력하는 Enqueue(), 출력하는 Dequeue() 메소드 제공
3) Stack
- 선입후출 구조의 자료구조
- 데이터를 입력하는 Push(), 출력하는 Pop() 메소드 제공
4) Hashtable
- 키와 값으로 이루어진 데이터를 다룰 때 사용
- 키를 해싱해서 테이블 내의 주소를 계산
- 배열처럼 다루기 간편하고 탐색속도도 빠름
3. 일반화 프로그래밍
- 데이터형식 일반화를 이용하는 프로그래밍 패러다임
- 한 가지 코드를 다양한 데이터 형식에 활용
1) 일반화 메소드
- 데이터형식을 일반화 한 메소드
- 메소드 이름 뒤에 형식 매개 변수를 입력하여 작성
- 형식 매개 변수 : <> 사이에 일반화 데이터 형식을 입력
- 컴파일 단계에서 형식 매개 변수는 실제 형식으로 치환됨
2) 일반화 클래스
- 데이터 형식을 일반화한 클래스
- 클래스 이름 뒤에 형식 매개 변수를 입력하여 작성
3) 형식 매개 변수 제약
- 형식 매개 변수가 특정 조건을 갖추도록 강제하는 기능
- 문법: "where 형식매개변수 : 제약조건"
- 예) 형식 매개 변수 T를 MyClass의 파생 클래스로 제약
※ where 절과 함께 사용할 수 있는 제약조건
4) 일반화 컬랙션
- 컬랙션(ArrayList, Queue, Stack, Hashtable)은 object 형식 기반
- 컬랙션의 요소에 접근할 때마다 발생하는 박싱/언박싱은 성능의 저하로 이어짐
- 일반화 컬랙션은 형식매개변수를 이용하여 버그와 성능저하를 줄임
- 컴파일 단계에서 형식매개변수가 특정 형식으로 치환되기 때문
- 일반화 컬랙션은 System.Collection.Genereic 네임스페이스에 위치
- 공부할 컬렉션
- List<T>
- Queue<T>
- Stack<T>
- Dictionary<TKey, TValue>
'인프런 > 이것이 C# 이다' 카테고리의 다른 글
Part 람다식 && LINQ (0) | 2023.11.14 |
---|---|
Part 대리자 && 이벤트 (1) | 2023.11.14 |
Part 인터페이스 && 프로퍼티 (0) | 2023.11.13 |
Part 메소드 && 클래스 (0) | 2023.11.12 |
Part 연산자 & 흐름 제어 (1) | 2023.11.09 |