컬렉션(Collection)은 자바에서 제공하는 자료구조를 담당하는 프레임 워크
추가, 삭제, 정렬 등의 기능처리가 간단하게 해결되어 자료구조적 알고리즘을 구현할 필요 없음
배열의 문제점을 보안
배열의 문제점
1. 한 번 크기를 지정하면 변경할 수 없다.
2. 배열에 기록된 데이터에 대한 중간 위의 추가, 삭제가 불편하다
3. 한타입의 데이터만 저장 가능하다
컬렉션의 장점
1. 저장하는 크기의 제약이 없다.
2. 추가 삭제 정렬 등의 기능 처리가 간단하게 해결된다.
3. 여러타입의 데이터가 저장 가능하다
컬렉션의 주요 인터페이스
List
자료들을 순차적으로 나열한 자료구조로 인덱스로 관리되며, 중복해서 저장 가능
ArrayList
List의 후손으로 초기 저장용량은 10으로 자동 설정되며 따로 지정도 가능 (list는 자동으로 크기가 줄었다 늘었다해서 큰 의미는 없음)
저장 용량을 초과한 객체들이 들어오면 자동으로 늘어나며 고정도 가능
동기화(Synchronized)를 제공하지 않음
List 사용법
ex) List<Student> studentList = new ArrayList<Student>();
// Student로 저장되는 타입이 제한된 리스트 생성
// Student만 저장 가능 == 모든게 Student
// == Student임을 검사할 필요 없다.
<>제네릭스(Generice) 보통 제네릭이라고 부름
컬렉션에 저장되는 객체 타입을 한가지로 제한
set
저장순서가유지되지않고, 중복객체도저장하지못하게하는자료구조 null도중복을허용하지않기때문에1개의null만저장
구현클래스로HashSet, LinkedHashSet, TreeSet이있음
// Set(집합)
// - 순서를 유지하지 않음(== 인덱스 없음)
// - 중복을 허용하지 않는다. (+null도 중복 x, 1개만 저장 가능)
// *** Set이 중복을 확인하는 방법 ***
// -> 객체가 가지고 있는 필드 값이 모두 같으면 중복으로 판단
// --> 이 때 필드 값이 모두 같은지 비교하기 위해서
// 객체에 "equals()"가 반드시! 오버라이딩 되어있어야 한다.
Set<String> set = new HashSet<>();
// HashSet : Set의 대표적인 자식 클래스
// 사용 조건 1 : 저장되는 객체에 equals() 오버라딩 필수
// 사용 조건 2 : 저장되는 객체에 hashCode() 오버라이딩 필수
// *참고* : Hash라는 단어가 붙은 컬렉션은
// 반드시 저장되는 객체에 equals(), hashCode()를 오버라이딩 해야함
Map
키(key)와값(value)으로구성되어있으며, 키와값은모두객체 키는중복저장을허용하지않고(Set방식), 값은중복저장가능(List방식) 키가중복되는경우,기존에있는키에해당하는값을덮어씌움
구현클래스로HashMap, HashTable, LinkedHashMap, Properties, TreeMap이있음
// Map : Key와 Value 한쌍이 데이터가 되어 이를 모아둔 객체
// - Key를 모아두면 Set의 특징 (중복 X)
// - Value를 모아두면 List의 특징 (중복 O)
// HashMap<K, V> : Map의 자식 클래스 중 가장 대표되는 Map
Map<Integer, String> map = new HashMap<Integer, String>();
'괴발개발 > java' 카테고리의 다른 글
| EL(Expression Laguage) (0) | 2024.06.26 |
|---|---|
| Servlet -1 이론 (0) | 2024.06.24 |
| 다형성 (1) | 2024.05.01 |
| 객체 지향 프로그래밍 OPP (0) | 2024.04.25 |
| 프로그램 기초 - Day 1 (0) | 2024.04.11 |