แผนที่เป็นอินเทอร์เฟซคอลเลกชันสำหรับคู่คีย์-ค่า คลาสการใช้งานส่วนใหญ่รวมถึง: hashmap, treemap, hashtable และ linkedhashmap
• TreeMap: การใช้งาน NavigableMap ตามต้นไม้สีแดงดำซึ่งเรียงลำดับตามลำดับตามธรรมชาติของคีย์หรือในตัวเปรียบเทียบที่ให้ไว้เมื่อสร้างแผนที่ขึ้นอยู่กับตัวสร้างที่ใช้
•ค่า hashmap อยู่ในลำดับพวกเขาจะถูกนำไปใช้ตาม hashcode ของคีย์ เราจะใช้การเรียงลำดับสำหรับ hashmap ที่ไม่ได้เรียงลำดับนี้ได้อย่างไร อ้างถึงการเรียงลำดับค่าของ treemap
map.entry ส่งคืนมุมมองคอลเลกชัน
เรียงลำดับตามคีย์
Treemap อยู่ในลำดับจากน้อยไปมากโดยค่าเริ่มต้น หากเราต้องการเปลี่ยนวิธีการเรียงลำดับเราจำเป็นต้องใช้ตัวเปรียบเทียบ: ตัวเปรียบเทียบ ตัวเปรียบเทียบสามารถเรียงลำดับอินเทอร์เฟซเปรียบเทียบสำหรับวัตถุการรวบรวมหรืออาร์เรย์และใช้วิธีการเปรียบเทียบสาธารณะ (T O1, TO2) ของอินเทอร์เฟซนี้เพื่อตระหนักถึงการเรียงลำดับ
หมายเหตุ: รหัสทั้งหมดต่อไปนี้ได้รับการทดสอบใน JDK1.6
TreeMap ถูกจัดเรียงตามลำดับจากน้อยไปมากโดยค่าเริ่มต้น
โมฆะสาธารณะคงที่ keyupsort () {// โดยค่าเริ่มต้น treemap ถูกจัดเรียงตามลำดับจากน้อยไปมากของ keymap <string, integer> map = new treemap <string, integer> (); map.put ("acb1", 5); map.put ("bac1", 3); map.put ("bca1", 20); 1); map.put ("abc1", 10); map.put ("abc2", 12); // โดยค่าเริ่มต้น treemap เรียงลำดับคีย์ตามลำดับจากน้อยไปมาก System.out.println ("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ปรับเปลี่ยนวิธีการเรียงลำดับของ treemap และเรียงลำดับโดยคีย์จากมากไปน้อย
public static void keydownsort () {// treemap, เรียงลำดับตามลำดับจากมากไปน้อย // เรียงลำดับในตัวเปรียบเทียบลำดับจากมากไปน้อย <string> keycomparator = new comparator <string> () {@overridepublic int Compare (String O1, String O2) {// TODO = ใหม่ treemap <สตริง, จำนวนเต็ม> (keycomparator); map.put ("acb1", 5); map.put ("bac1", 3); map.put ("bca1", 20); map.put ("cab1", 80); map.put ("cba1", 1); map.put 12); System.out.println ("------------ treemap 按คีย์降序排序 --------------------"); สำหรับ (map.entry <สตริง, จำนวนเต็ม> รายการ: map.entryset ()) {system.out.println (entry.getKey () + ":"เรียงตามค่า
ต่อไปนี้แสดงให้เห็นถึงการเรียงลำดับโดย treemap โดยคำสั่งซื้อจากน้อยไปมากและใช้กับ HashMap
ปรับเปลี่ยนวิธีการเรียงลำดับของ treemap และเรียงลำดับตามลำดับจากน้อยไปหาค่า
หมายเหตุ: ภายใต้สถานการณ์ปกติแผนที่ไม่สามารถจัดเรียงได้โดยใช้วิธีการรวบรวม sort () แต่สามารถแปลงแผนที่เป็นรายการก่อนการเรียงลำดับ
โมฆะคงที่สาธารณะค่า valueUpsort () {// โดยค่าเริ่มต้น treemap ถูกเรียงลำดับตามลำดับจากน้อยไปมากโดยแผนที่คีย์ <สตริง, จำนวนเต็ม> แผนที่ = treemap ใหม่ <สตริง, จำนวนเต็ม> (); map.put ("acb1", 5); map.put ("bac1", 3); map.put ("bca1", 20); 1); map.put ("abc1", 10); map.put ("abc2", 12); // ตัวเปรียบเทียบตัวเปรียบเทียบจากน้อยไปมาก <map.entry <สตริง, จำนวนเต็ม >> valueComparator = new comparator <map.entry <string, integer >> () {@overridepublic in Compare วิธีการที่สร้างขึ้นอัตโนมัติ stubreturn o1.getValue ()-o2.getValue ();}}; // แปลงแผนที่เป็นรายการสำหรับรายการเรียงลำดับ <map.entry <สตริง, จำนวนเต็ม >> รายการ = new ArrayList <map.entry <String, จำนวนเต็ม >> กุญแจตามลำดับจากน้อยไปมาก System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - ผลการทดสอบ
- -
ข้างต้นเป็นวิธีการใช้งานของการเรียงลำดับแผนที่ Java ตามค่าที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!