Java에서 사전을 어떻게 작성합니까? [닫은]


236

실제 책에서와 같이 사전을 구현하려고합니다. 나는 단어와 그 의미의 목록이 있습니다.

Java가 단어 목록과 의미를 키 / 값 쌍으로 저장하기 위해 제공하는 데이터 구조 / 유형

키가 주어진 경우 어떻게 값을 찾아 반환 할 수 있습니까?


24
글쎄, 사용자가 아닌 질문에 초점을 맞추기 위해 다시 열기로 투표하고 있습니다. 어쨌든이 사용자는 과정을 마쳤습니다. ;) stackoverflow.com/questions/1540673/… 의 사본 이지만 여기에 대한 답변이 더 낫습니다.
Adi Inbar

답변:


313

을 원할 것 Map<String, String>입니다. Map인터페이스 를 구현하는 클래스 에는 다음이 포함되지만 이에 국한되지는 않습니다.

각각은 특정 상황에 맞게 설계 / 최적화되었습니다 (자세한 내용은 해당 문서로 이동). HashMap아마도 가장 일반적 일 것입니다. 기본 이동.

예를 들어 (a 사용 HashMap) :

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

1
@Cruncher 또한 구현합니다 Map(javadoc 확인)
arshajii

1
@arshajii 사전에 모든 문자열을 수동으로 매핑하거나 모든 단어의 의미를 수동으로 저장한다고 말할 수 있습니다. 내 질문은 그래서, 우리는 수동으로 각 단어의 의미를 추가하지 수 있도록 단어와 그 의미 / 정의를 가져 오기 위해 사전 DB (덤프) 파일과 같은 어떤 방법이
Vighanesh Gursale

@VighaneshGursale 실행 중에 데이터 구조를 구축하려면 put 메소드를 사용해야합니다. put 명령은 디스크에서 파일을 읽고 메모리 (ram)에 배치하여 작업 할 수 있다고 생각하십시오. 로드 자동의 데이터 구조로로드하려는 파일이 있으면 Java 스프링을보아야하지만 복잡합니다.
Dan Ciborowski-MSFT

5
그런데 실제로 <String, String>을 두 번째로 포함 할 필요는 없습니다. 당신은 그냥 할 수 있습니다Map<String, String> map = new HashMap<>();
사무엘 Noyes

Hashtable
Arsenius

80

텍스트 사전 (문자열)을 만듭니다.

Map<String, String> dictionary = new HashMap<String, String>();

그런 다음 그것을 다음과 같이 사용하십시오 :

dictionary.put("key", "value");
String value = dictionary.get("key");

작동하지만 생성자 클래스를 선언 클래스와 동일하게 유지 해야하는 오류가 발생합니다. 부모 클래스에서 상속 받는다는 것을 알고 있지만 불행히도 런타임에 오류가 발생합니다.

Map<String, String> dictionary = new Map<String, String>();

이것은 제대로 작동합니다.


3
dictionary["key"]작동하지 않습니다-이어야합니다 dictionary.get("key").
arshajii

21
사실, 아마도 일부 C #이 미끄러졌습니다 :)
SmartK8


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.