List.of 메소드로 간단히 리스트를 생성하는 것이 가능
List<String> friends = List.of("Adam", "Tori", "Michael");
데이터 처리 형식을 설정하거나 변환할 필요가 없을 때 사용
Set.of로 집합을 간단히 생성 가능
Set<String> friends = List.of("Adam", "Tori", "Micahel");
Map.of: 데이터량이 적을때 사용
Map.Entry<K,V>: 데이터량이 많을때 사용
Map<String, Integer> ageOfFriends = Map.of("Adam", 30, "Tori",28, "Michael", 50);
Map<String, Integer> ageOfFriends = Map.ofEntries(entry("Adam",30),
entry("Tori",28),
entry("Michael", 50));
동시성 친화적인 HashMap
내부 자료구조의 특정 부분만 잠궈 동시추가, 갱신 작업을 허용
Hashtable에 비해 성능이 좋다
forEach: 각 쌍에 주어진 액션을 실행
reduce: 모든 쌍을 제공된 리듀스 함수를 이용해 결과로 합침
search: 널이 아닌 값을 반환할 때까지 각 쌍에 함수 적용
키 값으로 연산: forEach, reduce, search
키로 연산: forEachKey, reduceKeys, searchKeys
값으로 연산: forEachValue, redeceValues, searchValues
Map.Entry 객체로 연산: forEachEntry, reduceEntries, searchEntries
이 연산들은 ConcurrentHashMap의 상태를 잠그지 않고 수행하기 때문에 계산이 진행되는 동안 바뀔 수 있는 객체, 값, 순서 등에 의존하지 않아야 한다
병렬성 기준값을 지정해야 한다
mappingCount: ConcurrentHashMap의 매핑 개수 반환
keySet: ConcurrentHashMap을 집합 뷰로 반환