HashMap,LinkedHashMap 등
import
java.util.HashMap;
import
java.util.Iterator;
import
java.util.LinkedHashMap;
import
java.util.Map;
public
class
TestLinkedHashMap {
public
static
void
main(String args[])
{
System.out.println(
"*************************LinkedHashMap*************"
);
Map<Integer,String> map =
new
LinkedHashMap<Integer,String>();
map.put(
6
,
"apple"
);
map.put(
3
,
"banana"
);
map.put(
2
,
"pear"
);
for
(Iterator it = map.keySet().iterator();it.hasNext();)
{
Object key = it.next();
System.out.println( key+
"="
+ map.get(key));
}
System.out.println(
"*************************HashMap*************"
);
Map<Integer,String> map1 =
new
HashMap<Integer,String>();
map1.put(
6
,
"apple"
);
map1.put(
3
,
"banana"
);
map1.put(
2
,
"pear"
);
for
(Iterator it = map1.keySet().iterator();it.hasNext();)
{
Object key = it.next();
System.out.println( key+
"="
+ map1.get(key));
}
}
}
실행 결 과 는 다음 과 같 습 니 다.
*************************LinkedHashMap************* 6=apple 3=banana 2=pear *************************HashMap************************** 2=pear 6=apple 3=banana
분석:링크 드 Hashmap 의 특징 은 넣 은 대상 의 위치 가 변 하지 않 고 HashMap 에 변화 가 생 긴 다 는 것 이다.
더욱 보급:
자바 는 데이터 구조의 맵 에 인터페이스 자바 util.Map 을 정의 합 니 다.그것 은 네 가지 실현 유형 이 있 는데 그것 이 바로 HashMap Hashtable Linked HashMap 과 TreeMap 이다.
맵 은 주로 건 치 쌍 을 저장 하 는 데 사용 되 며 키 에 따라 값 을 얻 기 때문에 키 중복 은 허용 되 지 않 지만 중복 은 허용 되 지 않 습 니 다.Hashmap 는 키 의 HashCode 값 에 따라 데 이 터 를 저장 하고 키 에 따라 직접 값 을 얻 을 수 있 으 며 빠 른 접근 속도 가 있 으 며 시간 이 지나 면 데 이 터 를 얻 는 순 서 는 완전히 무 작위 입 니 다.HashMap 은 최대 한 개의 기록 키 만 Null 로 허용 합 니 다.여러 개의 기록 값 을 Null 로 허용 하기;HashMap 은 스 레 드 의 동기 화 를 지원 하지 않 습 니 다.즉,언제든지 여러 스 레 드 가 동시에 HashMap 을 쓸 수 있 습 니 다.데이터 가 일치 하지 않 을 수 있 습 니 다.동기 화가 필요 하 다 면 Collections 의 synchronizedMap 방법 으로 HashMap 을 동기 화 할 수 있 거나 ConcurrentHashMap 을 사용 할 수 있 습 니 다.
Hashtable 은 HashMap 과 유사 합 니 다.Dictionary 류 에서 계승 합 니 다.다른 것 은 기 록 된 키 나 값 이 비어 있 는 것 을 허용 하지 않 습 니 다.이것 은 스 레 드 의 동기 화 를 지원 합 니 다.즉,어느 순간 에 하나의 스 레 드 만 Hashtable 을 쓸 수 있 기 때문에 Hashtable 은 기록 할 때 느 립 니 다.
링크 드 하 쉬 맵 은 하 쉬 맵 의 하위 클래스 로 기록 의 삽입 순 서 를 저장 합 니 다.Iterator 로 링크 드 하 쉬 맵 을 옮 겨 다 닐 때 먼저 얻 은 기록 은 먼저 삽 입 된 것 이 분명 합 니 다.구조 할 때 파 라 메 터 를 사용 하여 응용 횟수 에 따라 정렬 할 수도 있 습 니 다.옮 겨 다 닐 때 HashMap 보다 느 릴 수 있 지만 예외 적 으로 HashMap 의 용량 이 크 고 실제 데이터 가 적 을 때 옮 겨 다 니 는 속도 가 LinkedHashMap 보다 느 릴 수 있 습 니 다.왜냐하면 LinkedHashMap 의 옮 겨 다 니 는 속 도 는 실제 데이터 와 만 관련 이 있 고 용량 과 무관 하 며 HashMap 의 옮 겨 다 니 는 속 도 는 그의 용량 과 관계 가 있 기 때 문 입 니 다.
TreeMap 은 SortMap 인 터 페 이 스 를 실현 합 니 다.저 장 된 기록 을 키 에 따라 정렬 할 수 있 습 니 다.기본 값 은 버튼 값 의 오름차 순 으로 정렬 할 수도 있 고 정렬 된 비교 기 를 지정 할 수도 있 습 니 다.Iterator 로 TreeMap 을 옮 겨 다 닐 때 얻 은 기록 은 정렬 된 것 입 니 다.
일반적인 상황 에서 우리 가 가장 많이 사용 하 는 것 은 HashMap 이다.Map 에 요 소 를 삽입 하고 삭제 하 며 포 지 셔 닝 하 는 것 이 가장 좋 은 선택 이다.하지만 자 연 스 러 운 순서 나 사용자 정의 순서 로 키 를 옮 겨 다 니 려 면 트 리 맵 이 좋 습 니 다.출력 순서 가 입력 과 같 아야 한다 면 링크 드 HashMap 으로 이 루어 질 수 있 고 읽 기 순서 로 배열 할 수 있 습 니 다.
HashMap 은 키 의 hashCode 값 에 따라 데 이 터 를 저장 하고 키 에 따라 값 을 직접 얻 을 수 있 으 며 빠 른 접근 속 도 를 가 집 니 다.HashMap 은 최대 한 개의 기록 키 만 NULL 로 허용 하고 여러 개의 기록 값 은 NULL 로 허용 합 니 다.
HashMap 은 스 레 드 동기 화 를 지원 하지 않 습 니 다.즉,모든 스 레 드 가 HashMap 을 동시에 쓸 수 있 고 데이터 의 불일치 성 을 초래 할 수 있 습 니 다.동기 화가 필요 하 다 면 Collections 의 synchronizedMap 방법 으로 HashMap 을 동기 화 할 수 있 습 니 다.
Hashtable 은 HashMap 과 유사 합 니 다.다른 것 은 기 록 된 키 나 값 이 비어 있 는 것 을 허용 하지 않 습 니 다.이것 은 스 레 드 의 동기 화 를 지원 합 니 다.즉,어느 순간 에 하나의 스 레 드 만 Hashtable 을 쓸 수 있 기 때문에 Hashtable 은 기록 할 때 느 립 니 다.
링크 드 하 쉬 맵 은 기록 의 삽입 순 서 를 저장 합 니 다.Iterator 로 링크 드 하 쉬 맵 을 옮 겨 다 닐 때 먼저 받 은 기록 은 먼저 삽 입 된 것 이 분명 합 니 다.
옮 겨 다 닐 때 HashMap 보다 느 립 니 다.TreeMap 은 저 장 된 기록 을 키 에 따라 정렬 할 수 있 습 니 다.기본 값 은 오름차 순 으로 정렬 하고 정렬 된 비교 기 를 지정 할 수 있 습 니 다.Iterator 로 TreeMap 을 옮 겨 다 닐 때 얻 은 기록 은 정렬 되 어 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.