LinkedHashMap/HashMap(수҉근거҉늦추다҉예금 하 다҉틀림없다҉준비 하 다҉)

3296 단어 LinkedHashMap
말 그대로 링크 드 하 쉬 맵 은 하 쉬 맵 보다 하나의 링크 가 더 많은 구조 입 니 다.HashMap 에 비해 LinkedHashMap 은 이중 링크 를 가 진 HashMap 을 유지 합 니 다.LinkedHashMap 은 2 중 정렬 을 지원 합 니 다.하 나 는 정렬 을 사용 합 니 다.하 나 는 정렬 을 사용 합 니 다.최근 에 사용 한 것 은 M1 M2 M3 M4 입 니 다.M3 를 사용 한 후에 M1 M2 M4 M3 입 니 다.LinkedHashMap 출력 시 그 요 소 는 순서 가 있 고 HashMap 출력 은 무 작위 입 니 다.맵 맵 맵 이 복잡 하고 효율 적 이 라면 링크 드 HashMap 을 사용 하 는 것 이 좋 습 니 다.그러나 다 중 스 레 드 를 방문 하면 동기 화 되 지 않 을 수 있 으 므 로 Collections.synchronizedMap 으로 포장 하여 동기 화 를 실현 해 야 합 니 다.그 실현 은 일반적으로 다음 과 같다.    Map map = Collections.synchronizedMap(new LinkedHashMap(HashMap,LinkedHashMap,TreeMap 은 모두 지도 에 속한다.
Map 은 키(key)값(value)을 저장 하 는 데 사용 되 며,키 에 따라 값 을 얻 기 때문에 키 는 중복 되 지 않 지만,값 이 중복 되 는 것 을 허용 합 니 다.
HashMap 은 키 의 HashCode 값 에 따라 데 이 터 를 저장 하고 키 에 따라 값 을 직접 얻 을 수 있 으 며 빠 른 접근 속 도 를 가진다.HashMap 은 최대 한 개의 기록 키 만 Null 로 허용 합 니 다.여러 개의 기록 값 을 Null 로 허용 하기;HashMap 은 스 레 드 의 동기 화 를 지원 하지 않 습 니 다.즉,언제든지 여러 스 레 드 가 동시에 HashMap 을 쓸 수 있 습 니 다.데이터 가 일치 하지 않 을 수 있 습 니 다.동기 화가 필요 하 다 면 Collections 의 synchronizedMap 방법 으로 HashMap 을 동기 화 할 수 있 습 니 다.
링크 드 하 쉬 맵 링크 드 하 쉬 맵 도 하 쉬 맵 이지 만 내부 에 양 방향 링크 가 유지 되 어 순 서 를 유지 할 수 있 습 니 다.
TreeMap 은 순 서 를 유지 할 수 있 을 뿐만 아니 라 정렬 에 도 사용 할 수 있다.
HashMap 예:
    public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("a3", "aa");
map.put("a2", "bb");
map.put("b1", "cc");
for (Iterator iterator = map.values().iterator(); iterator.hasNext();) {
String name = (String) iterator.next();
System.out.println(name);
}
}

LinkedHashMap 예:
    public static void main(String[] args) {
Map<String, String> map = new LinkedHashMap<String, String>();
map.put("a3", "aa");
map.put("a2", "bb");
map.put("b1", "cc");
for (Iterator iterator = map.values().iterator(); iterator.hasNext();) {
String name = (String) iterator.next();
System.out.println(name);
}
}

TreeMap 예:
    public static void main(String[] args) {
Map<String, String> map = new TreeMap<String, String>(new Comparator<Object>(){
Collator collator = Collator.getInstance();
public int compare(Object o1, Object o2) {
CollationKey key1 = collator.getCollationKey(o1.toString());
CollationKey key2 = collator.getCollationKey(o2.toString());
return key1.compareTo(key2);
//return collator.compare(o1, o2);
}});
map.put("a3", "aa");
map.put("a2", "bb");
map.put("b1", "cc");
for (Iterator iterator = map.values().iterator(); iterator.hasNext();) {
String name = (String) iterator.next();
System.out.println(name);
}
}

이 세 가지 예 를 실행 하여 그것들 간 의 차 이 를 체득 하 다.

좋은 웹페이지 즐겨찾기