Day 55

ChangWoo·2023년 5월 30일
0

자바의 정석

목록 보기
52/71
post-thumbnail

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은 순서를 유지하지 않으므로 순서 유지가 필요할 때 사용
profile
한 걸음 한 걸음 나아가는 개발자

0개의 댓글