ch 11-48~51 HashMap(2/2)
HashMap의 주요 메서드
- 생성자
- 해시 테이블 = 배열 + 링크드리스트
- 배열 초기용량을 정할 수 있다.
- Map을 HashMap으로 바꿀 수 있다.
- put = 데이터 저장, (key / value)를 저장
- putAll(Map m) = Map에 있는 모든게 저장된다.
- remove = 삭제
- replace = 변경
- entrySet = 키/값을 쌍으로 갖는 Set을 얻을 수 있다.
- keySet = 키 값만 얻을 수 있다.
- valueSet = 값만 얻을 수 있다.
- get = 특정 키를 넣으면 해당하는 값을 반환한다.
- getOrDefault = key가 없을 때 반환하는 값
- containsKey = 지정된 key가 있는지
- containsValue = 지정된 value가 있는지
- size = 크기
- isEmpty = 비어있는지 확인
- clear = 초기화
- clone = 복제
ch 11-52~56 Collections클래스, 컬렉션 클래스 요약
Collections(1/2) - 컬렉션을 위한 메서드(static)를 제공
- 1.컬렉션 채우기,복사,정렬,검색-fill(),copy(),sort(),binarySearch() 등
- 2.컬렉션의 동기화 - synchronizedXXX()
- Vector = 동기화 O
- ArrayList = 동기화 X, 필요하면 List를 활용
List syncList = Collections.synchronizedList(new ArrayList(...));
(동기화된 List) = Vector (동기화 되지 않은 List)
- 3.변경불가(readOnly) 컬렉션 만들기 - unmodifiableXXX()
Collections(2/2) - 컬렉션을 위한 메서드(static)를 제공
- 4.싱글톤 컬렉션 만들기 - singletonXXX()
- singleton 컬렉션 = 객체 1개만 저장
- 5.한 종류의 객체만 저장하는 컬렉션 만들기 - checkedXXX()
List list = new Arraylist();
List checkedList = checkedlist(list, String.class); // String만 저장가능 (한가지 타입만 저장가능)
checkedList.add("abc"); // OK.
checkedList.add(new Integer(3)); // 에러. ClasscastException발생
컬렉션 클래스 정리 & 요약 (1/2)
- ArrayList & Vector = Object배열을 포함하고 값을 저장한다. (배열기반의 컬렉션 클래스)
- Stack = LIFO구조(마지막에 들어간 것이 가장 먼저)
- 배열의 단점 : 추가,삭제가 불리하다.
- LinkedList = 배열의 단점을 보완한 연결기반이다.
- Queue = FIFO구조(처음에 들어간 것이 가장 먼저)
- HashMap & Hashtable = 검색기능 향상 (배열의 장점 + LinkedList의 장점) / key,value 한 쌍으로 값을 저장한다.
- TreeMap = 연결기반(LinkedList)을 변현한 것으로, 최대 2개까지 저장할 수 있는 트리 구조 / 검색 범위검색 / 정렬기능 향상 / 이진트리 / 중위순회하면 정렬됨.
- HashSet / TreeSet = HashMap과 TreeMap에서 key를 활용하여 만든 것
- Propertiees = HashMap의 변형 / HashMap의 key와 value가 Objet인 반면, String을 key와 value값으로 갖는다. / 파일의 읽기와 쓰기가 용이하다.
- LinkedHashMap & LinkedHashSet = Map과 Set은 순서를 유지하지 않으므로 순서 유지가 필요할 때 사용