2014-12-08 2 views
-1

메모리와 관련하여 Collection을 사용하는 것이 가장 좋습니다. (Key, Value) 쌍을 자주 반환하는 메서드를 호출해야합니다. 어떤 방법 으로든 가장 좋은 방법은 HashMap을 사용하거나 키와 값을 포함하는 개체를 만들고 HashSet에이 개체를 저장하는 것입니다.Java Collection HashSet 대 HashMap

감사합니다. & 감사합니다.

+3

"어떤 데이터 구조를 사용해야합니까?"라는 대답은 항상 "필요한 작업에 따라 달라집니다."입니다. 당신의 필요에 대해 자세히 설명해 주시겠습니까? – Mureinik

+0

이 자습서를 참조하십시오. 더 도움이되기를 바랍니다. http://www.java2novice.com/java-collections-and-util/ –

+0

두 방법 모두 용도가 있으며, 키가 개념적으로 값의 "부분"(HashSet)인지 아니면 그 키와 독립적인지에 따라 달라질 수 있습니다 HashMap). –

답변

4

키 단독 또는 키와 값을 모두 기반으로 데이터 구조를 검색해야하는지 여부에 따라 다릅니다. 당신은 혼자 키를 검색하는 경우

  • 하는 (즉 map.containsKey(key)), 당신은 HashMap 사용해야합니다.

  • 키 - 값 쌍 (예 : set.contains(new Pair(key,value))이 있는지 검색하려면 해당 쌍이 포함 된 HashSet을 사용해야합니다.

다른 요소는 요소의 고유성을 결정하는 방법입니다. 키 단독으로 결정된 경우 HashMap을 사용해야합니다. 키와 값에 의해 결정된 경우 (동일한 키가 다른 값으로 두 번 나타날 수 있음) HashhMap은 두 번 이상 동일한 키가 나타나지 않으므로 HashSet을 사용해야합니다.

+0

필요하다면 "key value"객체에 몇 가지 특별한 기능을 추가 할 수도 있습니다 – Milkmaid

+0

고마워요, 중복없이 키와 값을 저장해야하고 메서드 호출 당 최대 10 개의 객체를 저장 한 객체가 필요합니다. 1 초당 1 번이면되므로 메모리를 적게 소비하는 방식을 사용하고 싶습니다. – Hazim

+2

@Hazim하지만 어떻게이 데이터 구조에 액세스 할 예정입니까? 전체 데이터를 반복하거나 특정 값의 존재를 검색 할 것입니까? 동일한 키가 다른 값으로 두 번 나타나도록 허용합니까? – Eran