2012-02-27 5 views
1

이 다소 기본적인 질문은 용서해주십시오. 그러나 저는 Java에 익숙하며 여전히 길을 찾고 있습니다.어떤 Java 키 : 값 데이터 유형을 중복 값으로 사용 하시겠습니까?

저는 웹 스크레이퍼를 쓰고 있으며 key : value 데이터를 어떤 식 으로든 저장해야합니다. 나는 HashMaps를 지금까지 사용 해왔다.하지만 이제는 고유 키에 대해 중복 값을 허용해야한다는 점을 제외하고는 훌륭했다. 예를 들어 다음과 같이 허용해야합니다.

Key:Value 
abc : 123 
cde : 727 
efg : 123 
hij : 123 
klo : 876 
opa : 909 

이러한 상황에서 어떤 것이 가장 좋을지 조언 해 줄 사람이 있습니까?

감사

+0

'HashMap'은 잘 작동합니다. –

답변

4

java.util.HashMap를 사용하여 이미 가능하다. 중복 된 은 불가능합니다.

키를 값에 매핑하는 개체입니다. 지도에는 중복 키가 포함될 수 없습니다. 각 키는 최대 하나의 값으로 매핑 할 수 있습니다.

java.util.MapJavaDoc (HashMap에서 구현 됨).

+0

설명해 주셔서 감사합니다. 내 코드의 다른 곳의 버그 때문에 그럴 수 없다고 생각한 이유가 밝혀졌습니다. 나는 가치가 중복 될 수 없다고 의심했고, 더 많은 연구가 나의 의심을 확인한 정보를 보여 주었다. 나는 더 신중하게 연구 했어야했다. 다시 한번 감사드립니다. – Mike

0

List와 함께 Map (HashMap은 정상 임)을 사용할 수 있습니다.

0

지도에서 일종의 컬렉션에 대한지도를 제안합니다. 이 경우에는 Java에 내장 된 것이 없습니다 (Apache CollectionsGuava과 같은 다른 컬렉션 프레임 워크에는 다중 맵 유형이 있지만). 그냥 어떤 순서로, 값은 각각의 키에 관련 지을 수있는 것을 추적 또는 정보를 계산하려면

Map<KeyType, Set<ValueType>> map = new HashMap<KeyType, Set<ValueType>>(); 

불행하게도, 삽입이 조금 더 복잡 사용할 수 있습니다. 키가 존재하는지 테스트해야하며 그렇지 않으면 키 아래에 Set<ValueType>을 먼저 추가해야합니다. 그런 다음 새 값을 집합에 추가 할 수 있습니다.

관련 문제