ฉันกำลังพยายามใช้พจนานุกรม (เช่นเดียวกับในหนังสือจริง) ฉันมีรายการคำและความหมายของพวกเขา
โครงสร้าง / ประเภทข้อมูลใดที่ Java จัดเตรียมไว้เพื่อเก็บรายการคำและความหมายของคำเหล่านั้นเป็นคู่ของคีย์ / ค่า
ฉันจะค้นหาและคืนค่าได้อย่างไร
ฉันกำลังพยายามใช้พจนานุกรม (เช่นเดียวกับในหนังสือจริง) ฉันมีรายการคำและความหมายของพวกเขา
โครงสร้าง / ประเภทข้อมูลใดที่ Java จัดเตรียมไว้เพื่อเก็บรายการคำและความหมายของคำเหล่านั้นเป็นคู่ของคีย์ / ค่า
ฉันจะค้นหาและคืนค่าได้อย่างไร
คำตอบ:
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"));
ชนิดของสัตว์
Map
(ตรวจสอบ javadoc)
Map<String, String> map = new HashMap<>();
สิ่งนี้สร้างพจนานุกรมข้อความ (สตริง):
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>();
ทำงานได้อย่างถูกต้อง
dictionary["key"]
จะไม่ทำงาน - dictionary.get("key")
มันควรจะเป็น
ใช้แผนที่อินเตอร์เฟสและการนำไปใช้เช่นHashMap
มีพจนานุกรมชั้นนามธรรม
http://docs.oracle.com/javase/6/docs/api/java/util/Dictionary.html
อย่างไรก็ตามสิ่งนี้ต้องมีการดำเนินการ
Java ให้การใช้งานที่ดีที่เรียกว่า Hashtable
http://docs.oracle.com/javase/6/docs/api/java/util/Hashtable.html
Dictionary
ถูกล้าสมัยและไม่มีการนำไปใช้งานเพิ่มเติม