1. การเตรียมทางทฤษฎี
แผนที่เป็นอินเทอร์เฟซคอลเลกชันสำหรับคู่คีย์-ค่า คลาสการใช้งานส่วนใหญ่รวมถึง: hashmap, treemap, hashtable และ linkedhashmap
TEEMAP: การใช้งาน NavigableMap บนพื้นฐานของต้นไม้สีแดงดำซึ่งจัดเรียงตามลำดับตามธรรมชาติของคีย์หรือขึ้นอยู่กับตัวเปรียบเทียบที่ให้ไว้เมื่อสร้างการแมปขึ้นอยู่กับตัวสร้างที่ใช้
ค่าของ HashMap อยู่ในลำดับ พวกเขาจะถูกนำไปใช้ตาม hashcode ของคีย์ เราจะใช้การเรียงลำดับสำหรับ hashmap ที่ไม่ได้เรียงลำดับนี้ได้อย่างไร อ้างถึงการเรียงลำดับค่าของ treemap
map.entry ส่งคืนมุมมองคอลเลกชัน
2. การเรียงลำดับคีย์
Treemap อยู่ในลำดับจากน้อยไปมากโดยค่าเริ่มต้น หากเราต้องการเปลี่ยนวิธีการเรียงลำดับเราจำเป็นต้องใช้ตัวเปรียบเทียบ: ตัวเปรียบเทียบ ตัวเปรียบเทียบสามารถจัดเรียงวัตถุหรืออาร์เรย์การรวบรวมและใช้วิธีการเปรียบเทียบสาธารณะ (T O1, TO2) ของอินเทอร์เฟซนี้เพื่อตระหนักถึงการเรียงลำดับดังนี้:
นำเข้า java.util.Comparator; นำเข้า Java.util.iterator; นำเข้า Java.util.map; นำเข้า Java.util.set; นำเข้า java.util.treemap; คลาสสาธารณะ treemaptest {public Static Void Main (String [] args) String OBJ2) {// เรียงลำดับในลำดับจากมากไปน้อย return obj2.compareto (obj1);}}); map.put ("B", "CCCCCC"); map.put ("d", "aaaaa"); map.put ("C", "BBBBB"); map.put ("a", "ddddd"); ตั้งค่า <string> keyset = map.keyset (); Iterator <String> iter = keyset.iterator (); ในขณะที่ (iter.hasnext ()) {string key = iter.next (); System.out.println (คีย์ + ":" + map.get (คีย์)); -ผลการดำเนินการมีดังนี้:
D: AAAAAC: BBBBBB: CCCCCA: DDDDDD
3. การจัดเรียงค่า
ตัวอย่างข้างต้นคือการเรียงลำดับตามค่าคีย์ของ treemap แต่บางครั้งเราจำเป็นต้องเรียงลำดับตามค่าของ treemap ในการเรียงลำดับเราจำเป็นต้องใช้วิธีการเรียงลำดับ (รายการ <t>, ตัวเปรียบเทียบ <? super t> c) วิธีการรวบรวมซึ่งเรียงลำดับรายการที่ระบุตามลำดับที่สร้างโดยตัวเปรียบเทียบที่ระบุ แต่มีข้อกำหนดเบื้องต้นนั่นคือองค์ประกอบทั้งหมดจะต้องสามารถเปรียบเทียบได้ตามตัวเปรียบเทียบที่ให้ไว้ดังนี้:
นำเข้า java.util.arraylist; นำเข้า java.util.collections; นำเข้า java.util.comparator; นำเข้า java.util.list; นำเข้า java.util.map; นำเข้า java.util.map.entry; นำเข้า java.util.treemap treemap <string, string> (); map.put ("a", "dddddd"); map.put ("C", "BBBBBB"); map.put ("d", "aaaaa"); map.put ("B", "CCCCCC"); // ที่นี่แปลง map.entryset () เป็นรายการ <map.entry <string, string >> list = new ArrayList <map.entry <string, string >> (map.entryset ()); // จากนั้นใช้ตัวเปรียบเทียบเพื่อใช้ collections sorts.sort (รายการ, ตัวเปรียบเทียบใหม่ <map.entry <string, string >> () {// การเรียงลำดับ int สาธารณะเปรียบเทียบ (รายการ <สตริง, สตริง> o1, รายการ <สตริง, สตริง> o2) {return o1.getValue (). compereto สำหรับ (map.entry <string, string> mapping: list) {system.out.println (mapping.getKey ()+":"+mapping.getValue ()); -ผลการดำเนินการมีดังนี้:
D: AAAAAC: BBBBBB: CCCCCA: DDDDDD
การเรียงลำดับแผนที่ Java ข้างต้นโดยวิธีการใช้งานคีย์และค่าคือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น