2014-04-26 4 views
2

어디서나 인터넷에, 여기에 방법자바에서 사전 만들기? 그것은 트리 맵은 정렬 할 사전을 한 고려해서는 안

Map<String, String> map = new HashMap<String, String>(); 
map.put("dog", "type of animal"); 
System.out.println(map.get("dog")); 

내 포인트가되어 있습니까? 일치하는 조회는 Treemap의 경우에는 최적화되지 않지만 최상의 데이터 구조 정렬을 고려하십시오.

업데이트 : - 검색 단어가없는 경우 사전 구문 적으로 가장 가까운 단어가 하나 더 필요합니다. 나는 그것을 달성하는 방법을 모르겠다?

답변

4

하면 당신은 다음 TreeMap, 사용의 키에 의해 정렬 된지도가 필요합니다 "작업을 넣어 제거 얻을 ... containsKey에 보증 끝난 log (n) 시간 비용을 제공합니다." 그렇지 않은 경우 더 일반적인 HashMap ("...은 해시 함수가 버킷간에 요소를 올바르게 분산한다고 가정하고 기본 작업 (get 및 put)에 대한 상수 시간 성능을 제공합니다 ...") 또는 필요에 따라 다른 Map 구현 중 하나입니다.

+0

@ T.J. Crowder. 내 업데이트를 참조하십시오. 그게 하나 더 요구 사항. – user3198603

+0

@ user3198603 :이 경우 네,'TreeMap'을 사용하는 것이 더 합리적입니다. 특히 ['floorEntry'] (http://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html#floorEntry-K-)/['floorKey'] (http : /docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html#floorKey-K-) 및 ['ceilingEntry'] (http://docs.oracle.com/javase/8/docs) /api/java/util/TreeMap.html#ceilingEntry-K-)/['ceilingKey'] (http://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html#ceilingKey -K-)는 그 일환으로 유용하게 보입니다. –

0

주어진 키에 대한 값을 얻고 싶다면 hashmap에서 키와 정확히 일치하는 확률이 적 으면 hashmap을 사용하면 직접 조회 할 수 없습니다. TreeMap을 사용하면 이미 주문 된 키 목록을 얻을 수 있으며 목록에서 이진 검색을 수행 할 수 있습니다. 검색하는 동안 사전 식으로 키를 비교합니다. 두 키 사이의 사전 식 거리가 최소 또는 0이 될 때까지 이진 검색을 계속하십시오.

0

Dictionary은 더 이상 언어에서 사용되는 용어가 아닙니다. 여러 답을 얻을 수 있습니다.

Objective-C는 키/값 데이터 구조로 Dictionary라는 클래스를 사용합니다. 그것이 사전이라는 사실은 내가 물건의 순서라고 믿게합니다. 열쇠는 string 또는 char

이어야합니다. 그래서 전체 질문에 달려 있습니다.

사람은 알파벳 순으로 정렬 된 키/값 데이터 구조를 만들거나이 "Dictionary"는 대답은 말할 때 :

TreeMap<String, Object> map = new TreeMap<>() 

누군가가 키/값을 생성하는 방법을 묻는 경우 어떤 언어로든 Dictionary과 비슷한 객체 인 경우 Map<K, V> 인터페이스를 구현하는 java.util 클래스 중 하나를 가져올 수 있습니다 (예 : HashMap, TreeMap). 좋은 대답은 TreeMap입니다.

이 경우 누군가에게 HashMap을 사용하도록 말하면 답이 논란의 여지가 없으므로 논쟁의 여지가 없습니다.