
배열(Array)
참조형 변수이므로 주소값 저장
선언
1. 타입[ ] 변수
2. 타입 변수[ ]
생성 : new 타입[크기]
초기화
1. 중괄호{}
2. 반복문
3. Arrays.fill 메서드
복사(.clone())
- 얕은 복사 : 주소값만 복사(실제값 1개), 복사된 배열의 값 수정시 원본 배열 값도 수정
int[] a = { 1, 2, 3 }
int[] b = a;
- 깊은 복사 : 실제 값을 꺼내어 복사, 서로 다른 복사된 배열 생성
int[] b = a.clone();
int[] c = Arrays.copyOf(a, a.length);
String
String : 문자열
char[ ] : 문자 배열
String 메서드
- length() : 문자열 길이
- charAt(int index) : 문자열에서 해당 index 문자 반환
- substring(int from, int to) : from ~ to-1의 문자열 반환
- equals(String str) : 같은지 확인
- toCharArray() : 문자열을 문자 배열로 반환
- new String(char[] charArr) : 문자배열을 String으로 반환
가변 배열
- 2차원 배열 생성시 열의 길이를 생략하여 행마다 다른 길이의 배열을 요소로 저장
- int[ ][ ] array = new int[3][ ];
컬렉션
참조형 자료구조, 참조형 변수 저장
다수의 참조형 데이터를 더 쉽고 효과적으로 처리할 수 있는 기능이 많음
- 크기 자동조정, 추가, 수정, 삭제, 반복, 순회, 필터 등
List
순서가 있는 데이터의 집합
데이터 중복 허용
배열과 비슷
ArrayList
배열처럼 일렬로 데이터를 저장하고 인덱스로 값 조회
Array : 정적 / ArrayList : 동적
기능
- .add({}) : 값 추가
- .set({index}, {value}) : 값 수정
- .remove({index}) : 값 삭제
- .toString() : 전체 값 출력
- .clear() : 전체 값 삭제
LinkedList
메모리에 남는 공간을 요청하여 실제값으로 나누어 담고, 주소값으로 목록을 구성하고 저장
조회 속도 느림 / 수정, 삭제 속도 빠름
기능은 Array와 거의 비슷
- .add({index}, {value}) : 값 중간에 추가
Stack
값을 수직으로 쌓아놓고 넣었다 빼는 방식
Last-In-First-Out(LIFO) : 나중에 들어간 것이 먼저 나옴
기능
- .push({value}) : 값 추가
- .peek() : 맨 위 값 조회
- .pop() : 맨 위 값 삭제
Queue
한쪽에서 데이터를 넣고 반대쪽에서 뺄 수 있는 방식
First-In-First-Out(FIFO) : 먼저 들어간 것이 먼저 나옴
생성자 없음 → LinkedList로 생성
기능
- Queue<타입> intQueue = new LinkLIst<타입>() : 선언 및 생성
- .add({value}) : 값 추가
- .peek() : 맨 앞 값 조회
- .poll() : 맨 앞 값 삭제
Set
집합과 같은 자료구조 (순서 X, 중복 X)
생성자 없는 인터페이스
응용
- HashSet : 가장 빠름, 순서 X
- TreeSet : 정렬된 순서대로 보관
- LinkedHashSet : 추가된 순서 또는 가장 최근에 접근한 순서대로 접근 가능
기능
- .add({value}) : 값 추가
- .get({index}) : index 위치의 값 조회
- .remove({value}) : 값 삭제
- .contains({value}) : 해당 값이 포함되어 있는지 확인
Map
Key-Value 페어 구조로 구성된 자료구조
Key : 중복 X
응용
- HashMap : 순서 X, 중복 X, key와 value로 null 허용
- TreeMap : Key값 기준으로 정렬 가능, 시간 다소 소요
기능
- .put({key}, {value}) : 값 추가
- .get({key}) : key에 있는 value값 저장
- .ketset() : 전체 key값 조회
- .values() : 전체 value값 조회
- .remove({key}) : key에 있는 value값 삭제
- length : 배열 길이 조회
- length() : 문자열 길이를 조회
- size() : 컬렉션 타입 목록의 길이 조회