2012-11-24 51 views
157

Tôi đang cố triển khai từ điển (như trong sách thực). Tôi có một danh sách các từ và ý nghĩa của chúng.Làm cách nào để tạo một từ điển trong Java?

Java/cấu trúc dữ liệu nào cung cấp để lưu trữ danh sách các từ và ý nghĩa của chúng dưới dạng cặp khóa/giá trị.

Làm thế nào, được cung cấp một khóa, tôi có thể tìm và trả lại giá trị không?

+16

Vâng, trên tinh thần tập trung vào câu hỏi, không phải là người sử dụng, tôi bỏ phiếu để mở lại. Tôi chắc chắn rằng người dùng này đã hoàn thành khóa học ngay bây giờ. ;) Đó là một bản sao của http://stackoverflow.com/questions/1540673/java-equivalent-to-python-dictionaries, nhưng tôi nghĩ rằng câu trả lời ở đây là tốt hơn. –

Trả lời

8

Sử dụng Map interface và một thực hiện như HashMap

+0

Một liên kết đến một giải pháp được chào đón, nhưng hãy đảm bảo câu trả lời của bạn hữu ích mà không có nó: [thêm ngữ cảnh xung quanh liên kết] (// meta.stackexchange.com/a/8259) để người dùng của bạn sẽ có ý tưởng về nó và tại sao nó ở đó, sau đó trích dẫn phần có liên quan nhất của trang bạn đang liên kết đến trong trường hợp trang đích không có sẵn. [Câu trả lời có nhiều hơn một liên kết có thể bị xóa.] (// stackoverflow.com/help/deleted-answers) – FelixSFD

+1

Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên đưa các phần quan trọng của câu trả lời vào đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. - [Từ đánh giá] (/ review/low-quality-posts/17044904) – sfat

48

Điều này tạo ra từ điển của văn bản (string):

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

sau đó bạn sử dụng nó như một:

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

'dictionary [" key "]' sẽ không hoạt động - nó phải là 'dictionary.get (" key ")'. – arshajii

+9

True, có lẽ một số C# trượt trong :) – SmartK8

221

Bạn sẽ muốn có một Map<String, String>. Lớp mà thực hiện giao diện Map bao gồm (nhưng không giới hạn):

đều được thiết kế/tối ưu hóa cho các tình huống nhất định (đi đến tài liệu tương ứng của họ để biết thêm thông tin). HashMap có lẽ là phổ biến nhất; mặc định go-to.

Ví dụ (sử dụng một HashMap):

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

@Cruncher Nó cũng thực hiện 'Map' (kiểm tra javadoc) – arshajii

+1

@arshajii tôi có một nghi ngờ chúng tôi tự bản đồ tất cả các chuỗi trong từ điển hoặc tôi có thể nói rằng chúng tôi lưu trữ bằng tay ý nghĩa của tất cả các từ. Vì vậy, câu hỏi của tôi là, có cách nào giống như các tệp db (dump) của từ điển để tìm nạp các từ và ý nghĩa/định nghĩa của chúng để chúng ta có thể tránh thêm ý nghĩa của từng từ theo cách thủ công –

+0

@VighaneshGursale Bạn sẽ cần sử dụng phương thức đặt cấu trúc dữ liệu của bạn trong quá trình exeuction. Hãy suy nghĩ của một lệnh đặt như đọc các tập tin từ đĩa, và đặt nó trong bộ nhớ (ram) để bạn có thể làm việc với nó. Nếu bạn có một tập tin mà bạn muốn nạp vào như là một cấu trúc dữ liệu trên tải tự động bạn wouuld cần phải nhìn vào mùa xuân java nhưng phức tạp của nó. –

Các vấn đề liên quan