Tôi là người dùng thời gian dài của Python và thực sự thích cách mà các từ điển được sử dụng. Chúng rất trực quan và dễ sử dụng. Có một Java tốt tương đương với từ điển của python? Tôi đã nghe nói về những người sử dụng hashmaps và hashtables. Ai đó có thể giải thích sự giống nhau và khác biệt của việc sử dụng hashtables và hashmaps so với từ điển của python?Java Tương đương với từ điển Python
Trả lời
Lớp học dict
của Python là việc triển khai tài liệu Python gọi chính thức "mapping types". Bên trong, dict
được triển khai bằng cách sử dụng thẻ bắt đầu bằng #.
Lớp Java HashMap
của Java là triển khai giao diện Map
. Bên trong, HashMap
được triển khai bằng cách sử dụng thẻ bắt đầu bằng #.
Có một vài khác biệt nhỏ về cú pháp và tôi tin rằng các triển khai được điều chỉnh hơi khác nhau, nhưng nhìn chung chúng hoàn toàn có thể thay thế được.
Theo như tôi biết (tôi không thực sự sử dụng java) từ điển chỉ là một tên khác cho một hashmap/hashtable.
Lấy mã từ http://www.fluffycat.com/Java/HashMaps/ có vẻ như chúng được sử dụng theo cách tương tự, với một chút đĩa bổ sung java.
Java thậm chí có một giao diện từ điển được thực hiện bởi Hashtable. HashMap thường được ưa thích, mặc dù. –
@Michael Myers: Từ điển không được dùng nữa, Oracle khuyên bạn nên sử dụng Bản đồ thay vì http://docs.oracle.com/javase/7/docs/api/java/util/Dictionary.html –
Một điểm khác biệt giữa hai yêu cầu là dict
có các yêu cầu khắt khe hơn về loại dữ liệu nào có thể hoạt động như một khóa. Java sẽ cho phép bất kỳ đối tượng nào hoạt động như một khóa - mặc dù bạn nên cẩn thận để đảm bảo rằng phương thức hashCode()
của đối tượng trả về một giá trị duy nhất phản ánh trạng thái bên trong của đối tượng đó. Python yêu cầu các khóa để phù hợp với định nghĩa của nó là hashable, trong đó xác định rằng mã băm của đối tượng sẽ không bao giờ thay đổi trong suốt thời gian tồn tại của nó.
Điều này đúng, nhưng nó không thực sự được thực thi bởi một trong hai ngôn ngữ. Rõ ràng trong phương thức 'hashCode()' của Java hoặc trong phương thức Python '__hash __()', bạn nên cố gắng trả về một giá trị duy nhất phản ánh trạng thái bên trong.Trong Java hoặc Python, nếu bạn có một đối tượng có thể thay đổi, nó có thể không phải là một khóa có thể dùng được, do đó, nó có ý nghĩa để ném một ngoại lệ từ phương thức 'hashCode()' hoặc '__hash __()'. –
Ý tưởng về từ điển và Bản đồ tương tự. Cả hai đều chứa các yếu tố như
key1:value1, key2:value2 ... and so on
Trong Java, Map
được thực hiện nhiều cách khác nhau như HashMap
, hoặc TreeMap
, vv put(), get()
hoạt động tương tự như
Map map = new HashMap();
// Put elements to the map
map.put("Ram", new Double(3434.34));
map.put("Krishna", new Double(123.22));
map.put("Hary", new Double(1378.00));
//to get elements
map.get("Krishna"); # =123.22
map.get("Hary"); # = 1378.00
Xem tài liệu của HashMap trong java8 https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html
- 1. Tương đương TreeSet của Java tương đương với Python?
- 2. python tương đương tương đương
- 3. Java tương đương với bản đồ chức năng trong Python
- 4. Java tương đương với bisect trong python
- 5. Java tương đương với struct.pack của Python?
- 6. Python: Java ném tương đương trong python
- 7. .NET có thực thi từ điển tương đương với ConcurrentHashMap của Java không?
- 8. Python tương đương với Java JNLP Web Start?
- 9. Java tương đương với OpenLayers
- 10. có Java tương đương với defaultdict của Python không?
- 11. Python tương đương với find2perl
- 12. java tương đương với mkstemp
- 13. Tương đương Python của compareTo của Java()
- 14. python tương đương với sed
- 15. Python tương đương với Sinatra
- 16. callgrind tương đương với java?
- 17. __LINE__ tương đương với Java?
- 18. Java Tương đương với Reflection.Emit
- 19. Java tương đương với WPF
- 20. Java tương đương với python tất cả và bất kỳ
- 21. Tương đương với hàm lambda của Python trong Java?
- 22. java của() tương đương trong python
- 23. Tương đương Java cho str.strip của Python()
- 24. Python "Sự kiện" tương đương trong Java?
- 25. Tương đương với LinkedHashMap trong Python
- 26. Python tương đương
- 27. Tương đương với __func__ (từ C) trong Python
- 28. Kiểm tra xem hai Từ điển Python Massive có Tương đương
- 29. C# tương đương với từ khóa 'thực hiện' của Java?
- 30. Có tương đương với getch() từ C++ trong Java không?
Không có ví dụ nào được cung cấp: ( –
@kami: –
Một ví dụ minh họa tương đương java của từ điển python trong hành động Một câu trả lời hữu ích bao gồm một số ví dụ bởi vì hầu hết mọi người đến đây để xem các ví dụ và sử dụng chúng trong mã của họ –