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 |
Tags
- java list 저장
- 코딩부트캠프후기
- 인터프린터언어
- java list 출력
- 격파르타합격후기
- 항해15기
- 항해99후기
- 작은수제거하기
- java최솟값구하기
- java참조자료형
- 격파르타비전공자
- javaJRE
- 프로그래머스
- java set 출력
- 비전공자sqld
- 격파르타장점
- 프로그래머스제일작은수
- 노베이스부트캠프
- java map 저장
- java알고리즘
- 격파르타후기
- sqld자격증합격
- java기본자료형
- 컴파일
- java set 저장
- java map
- java알고리즘문제풀이
- java map 출력
- java 자료구조 활용
- javaJVM
Archives
- Today
- Total
코딩과 결혼합니다
231015 - 자바의 정석 chapter 11 (컬렉션 프레임워크2) 본문
728x90
⭐Iterator, ListIterator, Enumeration
- 컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스
- Enumeration은 Iterator의 구버전
- ListIterator는 Iterator의 접근성을 향상시킨 것 (단방향 ➡️ 양방향)
- Iterator
- 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화
- 컬렉션에 Iterator()를 호출해서 Iterator를 구현한 객체를 얻어서 사용
// boolean hasNext() : 읽어 올 요소가 남아있는지 확인
// Object next() : 다음 요소를 읽어 온다.
List list = new ArrayList();
Iterator it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
⭐Map과 Iterator
- Map에는 Iterator()가 없다. keySet(), entrySet(), values()를 호출해야 한다.
Map map = new HashMap();
...
Iterator it = map.entrySet().iterator();
⭐Arrays
- 배열의 출력 - toString()
- 배열의 복사 - copyOf(), copyOfRange()
- 배열 채우기 - fill(), setAll()
- 배열의 정렬과 검색 - sort(), binarySearch()
*배열을 정렬한 후에 값을 찾아야 정확한 결과가 나온다. (이진탐색 ➡️ 정렬된 배열에만 사용 가능) - 다차원 배열의 출력 - deepTostring()
- 다차원 배열의 비교 - deepEquals()
- 배열을 List로 변환 - asList(Object...a)
- 람다와 스트링 관련 - parallelXXX(), spliterator(), stream()
//읽기 전용
List list = Arrays.asList(new Integer[]{1,2,3,4,5});
List list = Arrays.asList(1,2,3,4,5);
list.add(6); //예외 발생
//변경 가능
List list = new ArrayList(Arrays.asList(1,2,3,4,5));
⭐Comparator와 Comparable
- 객체 정렬에 필요한 메서드(정렬기준 제공)를 정의한 인터페이스
Comparable : 기본 정렬기준을 구현하는데 사용
Comparator : 기본 정렬기준 외에 다른 기준으로 정렬하고자할 때 사용
- compare()와 compareTo는 두 객체의 비교결과를 반환하도록 작성
- compare() // 두 객체를 비교
- compareTo // 주어진 객체를 자신과 비교
⭐HashSet (순서❌, 중복❌)
- HashSet
- Set인터페이스를 구현한 대표적인 컬렉션 클래스
- 순서를 유지하려면 LinkedHashSet클래스를 사용하면 된다.
- 객체를 저장하기전에 기존에 같은 객체가 있는지 확인
- boolean add(Object o)는 저장할 객체의 equals()와 hashCode()를 호출
equals()와 hashCode()가 오버라이딩 되어 있어야
- HashSet 주요 메서드
- HashSet()
- HashSet(Collection c) - 생성
- HashSet(int initalCapacity) - 초기용량
- HashSet(int initalCapacity, float loadFactor) - +언제 용량을 늘릴 건지
- boolean add(Object o) - 저장할 객체의 equals()와 hashCode()를 호출
- boolean add All(Collection c) - 합집합
- boolean remove(Object o)
- boolean remove All(Collection c) - 교집합
- boolean retainAll(Collection c) - 컬렉션에 있는 것만 남기고 삭제, 차집합
- void clear()
- boolean contains(Object o)
- boolean containsAll(Collection c) - 여러 객체가 모두 포함되어 있는지?
- Iterator iterator()
- boolean isEmpty()
- int size()
- Object[] to Array()
- Object[] to Array(Object[] a)
- TreeSet
- 범위 검색과 정렬에 유리한 컬렉션 클래스 ( from ~ to )
- HashSet보다 데이터 추가, 삭제에 시간이 더 걸림
- 이진 탐색 트리로 구현. 범위 탐색과 정렬에 유리
- 이진 트리는 모든 노드가 최대 2개의 하위 노드를 가짐
- 이진 탐색트리
- 부모보다 작은 값은 왼쪽 큰 값은 오른쪽에 저장
- 데이터가 많아질 수록 추가, 삭제에 시간이 더 걸림(비교 횟수 증가)
- TreeSet 주요 메서드
- TreeSet(Comparator comp) - 비교 후 저장
- Object first() - 첫 번째 객체 반환. 제일 小
- Object last() - 마지막 객체 반환. 제일 大
- Object ceiling(Object o) - 저장된 객체와 같은 객체를 반환, 없으면 큰 값을 가진 객체 중 제일 가까운 값의 객체 반환, 없으면 null
- Object higer(Object o) - 지정된 객체보다 큰 값을 가진 객체 중 제일 가까운 값의 객체를 반환
- Object higer(Object o) - 지정된 객체보다 작은 값을 가진 객체 중 제일 가까운 값을 객체를 반환
- SortedSet subSet ( Object fromElement, Object toElement) - 범위 검색 (끝 범위는 범위에 포함되지 않음)
- SortedSet headSet ( Object toElement) - 지정된 객체보다 작은 값의 객체들을 반환
- SortedSet tailSet ( Object toElement) - 지정된 객체보다 값의 객체들을 반환
⭐HashMap과 Hashtable (순서❌, 중복(키❌, 값⭕))
- Map인터페이스를 구현. 데이터를 키와 값 쌍으로 저장
- HashMap(동기화 x)은 Hashtable(동기화 o)의 신버전
- HashMap
- Map인터페이스를 구현한 대표적인 컬렉션 클래스
- 순서를 유지하려면, LinkedHashMap클래스를 사용하면 된다.
- 키와 값 - 해싱 기법으로 데이터를 저장. 데이터가 많아도 검색이 빠르다.
- TreeMap
- 범위 검색과 정렬에 유리한 컬레션 클래스
- HashMap보다 데이터 추가, 삭제에 시간이 더 걸림
- 해싱
- 해시함수를 이용해서 해시테이블에 저장하고 읽어오는 것
- 해시테이블을 배열과 링크드 리스트가 조합된 형태
- 해시테이블에 저장된 데이터를 가져오는 과정
- 키로 해시함수를 호출해서 해시코드를 얻는다.
- 해시코드에 대응하는 링크드리스트를 배열에서 찾는다.
- 링크드리스트에서 키와 일치하는 데이터를 찾는다.
⭐Collections - 컬렉션을 위한 메서드(static)를 제공
- 컬랙션 채우기, 복사, 정렬, 검색 - fill(), copy(), sort(), binarySet() 등
- 컬렉션의 동기화 - synchronizedXXX()
- 변결불가(read Only)컬랙션 만들기 - unmodifiableXXX()
- 싱클톤 컬렉션 만들기 - singletonXXX()
- 한 종류의 객체만 저장하는 컬렉션 만들기 - checkedXXX()
'2세 > Java' 카테고리의 다른 글
231020 - 자바의 정석 chapter 12 (열거형, 애너테이션) (0) | 2023.10.20 |
---|---|
231019 - 자바의 정석 chapter 12 (Generics) (0) | 2023.10.19 |
231014 - 자바의 정석 chapter 11 (컬렉션 프레임워크) (2) | 2023.10.14 |
230926 - 자바의 정석 chapter 10 (날짜와 시간 & 형식화) (0) | 2023.09.27 |
230924 - 자바의 정석 chapter 09 (0) | 2023.09.25 |