Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 2024 정보처리기사 수제비 실기
- jpa - 객체지향 쿼리 언어
- 자바의 정석 기초편 ch11
- 2024 정보처리기사 시나공 필기
- 스프링 mvc2 - 검증
- @Aspect
- 스프링 입문(무료)
- 자바의 정석 기초편 ch6
- 자바의 정석 기초편 ch5
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch1
- 자바의 정석 기초편 ch8
- 타임리프 - 기본기능
- 자바의 정석 기초편 ch14
- 스프링 mvc2 - 타임리프
- 스프링 mvc1 - 서블릿
- 자바의 정석 기초편 ch3
- 자바의 정석 기초편 ch2
- 스프링 db1 - 스프링과 문제 해결
- 자바의 정석 기초편 ch4
- 스프링 db2 - 데이터 접근 기술
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch7
- 자바의 정석 기초편 ch13
- 자바의 정석 기초편 ch9
- jpa 활용2 - api 개발 고급
- 자바의 정석 기초편 ch12
- 게시글 목록 api
- 코드로 시작하는 자바 첫걸음
- 스프링 mvc2 - 로그인 처리
Archives
- Today
- Total
나구리의 개발공부기록
자바의 정석 기초편 ch11 - 1 ~ 6[컬렉션프레임워크와 핵심 인터페이스, Collection, List, Set, Map] 본문
유튜브 공부/JAVA의 정석 기초편(유튜브)
자바의 정석 기초편 ch11 - 1 ~ 6[컬렉션프레임워크와 핵심 인터페이스, Collection, List, Set, Map]
소소한나구리 2023. 12. 8. 12:201) 컬렉션 프레임워크
(1) 컬렉션(collection)
- 여러 객체(데이터)를 모아 놓은 것을 의미
(2) 프레임워크(framework)
- 표준화, 정형화된 체계적인 프로그래밍 방식 - 유지보수가 쉬워짐
(3) 컬렉션프레임워크(collections framework)
- 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식
- 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공(저장, 삭제, 검색, 정렬 등)
- java.util패키지에 포함. JDK1.2부터 제공 / 그 이전에도 제공은 했으나 표준화가 안되어있었음
(4) 컬렉션클래스(collections class)
- 다수의 데이터를 저장할 수 있는 클래스 (예: Vector, ArrayList,HashSet 등..)
2) 컬렉션 프레임웍의 핵심 인터페이스
(1) Collection
- List와 Set의 공통부분을 뽑아서 정의한 인터페이스
(2) List
- 순서가 있는 데이터의 집합, 데이터의 중복을 허용함 (예: 대기자 명단 등)
- ArrayList, LinkedList, Stack, Vector 등
(3) Set
- 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않음 (예: 양의 정수집합, 소수의 집합)
- HashSet, TreeSet 등
(4) Map
- 키(key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합
- 순서는 유지 되지 않고, 키는 중복 허용불가 값은 중복을 허용 (예: 우편번호, 지역번호(전화번호), id(key) - password(value))
- HashMap, TreeMap, HashTable, Properties 등
3) Collection인터페이스의 메서드
Collection 인터페이스 메서드 |
설명 | |
추가 | boolean add(Object o) boolean addAll(Collection c) |
지정된 객체(o) 또는 Collection(c)의 객체들을 Collection에 추가함 |
전체삭제 | void clear() | Collection의 모든 객체를 삭제 |
검색 | boolean contains(Object o) boolean containsAll(Collection c) |
지정된 객체(o) 또는 Collection(c)의 객체들이 Collection에 포함 되어있는지 확인 |
모든 객체가 가지고있음 |
boolean equals(Object o) | 동일한 Collection인지 비교 |
int hashcode() | Collection의 hashcode를 반환 | |
- | boolean isEmpty() | Collection이 비어 있는지 확인 |
Iterator iterator() | Collection의 Iterator를 얻어서 반환 | |
삭제 | boolean remove(Object o) | 지정된 객체를 삭제 |
boolean removeAll(Collection c) | 지정된 Collection(c)에 포함된 객체들을 삭제 | |
boolean retainAll(Collection c) | 지정된 Collection(c)에 포함된 객체만을 남기고 다른 객체들은 Collection에서 삭제 이 작업으로 인해 Collection에 변화가 있으면 true 없으면 false를 반환 |
|
int size() | Collection에 저장된 객체의 개수를 반환 | |
배열 저장 | Object[] toArray() | Collection에 저장된 객체를 객체배열(Object[])로 반환 |
Object[] toArray(Object[] a) | 지정된 배열에 Collection의 객체를 저장해서 반환 |
4) List인터페이스의 메서드 - 저장된순서유지 , 중복허용
- Vector 와 ArrayList는 거의 같음 - Vector는 옛날거, ArrayList는 Vector를 개선한 것
- ArrayList LinkedList 두개가 핵심
List 인터페이스 메서드(Collection 메서드는 제외) |
설명 | |
추가 | void add(int index, Object element) boolean addAll(int index, Collection c) |
지정된 위치(index)의 객체(element)또는 컬렉션에 포함된 객체들을 추가 |
읽기 | Object get(int index) | 지정된 위치(index)에 있는 객체를 반환 |
검색 | int indexOf(Object o) | 지정된 객체의 위치(index)를 반환 (List의 첫 번째 요소부터 순방향으로) |
int lastIndexOf(Object o) | 지정된 객체의 위치(index)를 반환 (List의 마지막 요소부터 역방향으로) |
|
- | ListIterator ListIterator() | List의 객체에 접근할 수 있는 ListIterator를 반환 |
ListIterator ListIterator(int index) | ||
삭제 | Object remove(int index) | 지정된 위치(index)에 있는 객체를 삭제 -> 삭제된 객체를 반환 |
변경 | Object set(int index, Object element) | 지정된 위치(index)에 객체(element)를 저장 |
정렬 | void sort(Comparator c) | 지정된 비교자(Comparator)로 List를 정렬 - java8추가 |
일부추출 | List subList (int fromIndex, int toIndex) | 지정된 범위(fromIndex 부터 toIndex까지)에 있는 객체를 반환 |
5) Set인터페이스의 메서드 - 순서없음, 중복없음
- HashSet, TreeSet이 핵심
- Set인터페이스의 메서드 - Collection인터페이스와 동일
집합과 관련된 메서드 -> (Collection에 변화가 있으면 true, 아니면 false를 반환)
Set 메서드 |
설명 | |
합집합 | boolean addAll(Collection c) | 지정된 Collection(c)의 객체들을 Collection에 추가함 |
부분집합 | boolean containsAll(Collection c) | 지정된 Collection(c)의 객체들이 Collection에 포함 되어있는지 확인 |
차집합 | boolean removeAll(Collection c) | 지정된 Collection(c)에 포함된 객체들을 삭제 |
교집합 | boolean retainAll(Collection c) | 지정된 Collection(c)에 포함된 객체만을 남기고 다른 객체들은 Collection에서 삭제 |
6)Map인터페이스의 메서드 - 순서없음, 중복(키 - X , 값 - O)
- Hashtable과 HashMap은 거의 같음 - Hashtable(동기화 O)은 옛날 것 HashMap(동기화X)은 새로운 것
- key와 value를 쌍으로 저장 - 합쳐서 Entry라고 부름
- HashMap, TreeMap이 핵심
- LinkedHashMap - 순서O : 순서가 필요할 때 사용
Map 인터페이스 메서드 |
설명 | |
전체삭제 | void clear() | Map의 모든 객체를 삭제 |
검색 | boolean containsKey(Object key) | 지정된 key객체와 일치하는 Map의 key객체가 있는지 확인 |
boolean containsValue(Object value) | 지정된 value객체와 일치하는 Map의 value객체가 있는지 확인 | |
Object get(Object key) | 지정된 key객체에 대응하는 value객체를 찾아서 반환 | |
읽기 |
Set entrySet() | Map에 저장되어있는 key-value쌍을 Map.Entry타입의 객체로 저장한 Set으로 반환 |
Set keySet() | Map에 저장된 모든 key객체를 반환 | |
Collection values() | Map에 저장된 모든 value객체를 반환 (순서와 중복이 있어도, 없어도 되서 Collection타입으로 반환) |
|
- | boolean equals(Object o) | 동일한 Map인지 비교 |
- | int hashcode() | 해시코드를 반환 |
- | boolean isEmpty() | Map이 비어있는지 확인 |
추가 |
Object put(Object key, Object Value) | Map에 value객체를 key객체에 연결(mapping)하여 저장 |
void putAll(Map t) | 지정된 Map의 모든 key-value의 쌍을 추가 | |
삭제 | Object remove(Object key) | 지정한 key객체와 일치하는 key-value객체를 삭제 |
- | int size() | Map에 저장된 key-value쌍의 개수를 반환 |
** 출처 : 남궁성의 정석코딩_자바의정석_기초편 유튜브 강의