[JAVA] Verknüpfte HashMap, auf die in der Reihenfolge des Einfügens verwiesen wird, und deren Verwendungsbeispiel

Apropos Karte die ganze Zeit. ..

Map<key, value> map = new HashMap()<>;

Ich wusste es nur. Es gibt jedoch etwas namens LinkedHashMap </ b>!

Also, wie man es benutzt.

Was ist LinkedHashMap?

Dies ist die beste Karte, die die Einfügereihenfolge </ b> beibehält.

Als Szene zu verwenden ・ Ich möchte in der Reihenfolge des Einfügens arrangieren ・ Ordnen Sie in einer Reihenfolge an, die Menschen verstehen können, Computer jedoch nicht.

Ich werde die Szene von vorstellen.

Probeninhalt

Dies ist ein Beispiel zum Auswählen und Anzeigen mehrerer Präfekturen, zu denen Sie gehen möchten </ b>.

Häufig "Nach Hokkaido im Norden und nach Okinawa im Süden" Aber im Grunde sind sie von Norden nach Süden ausgerichtet. .. ..

Als Liste · Hokkaido · Präfektur Miyagi ·Tokio ・ Präfektur Osaka ・ Präfektur Aichi · Präfektur Fukuoka Einstellen.

In der Reihenfolge von Norden wie oben beschrieben einfügen.

Für HashMap

import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        
        //Liste mit der gepressten Präfektur
        List<String> prefectureClickedList = new ArrayList();
        //Liste der Präfekturen Karte
        Map<String, Boolean> prefectureMap = new HashMap();
//        Map<String, Boolean> prefectureMap = new LinkedHashMap();
        {
            //Von Norden einfügen
            prefectureMap.put("Hokkaido", false);
            prefectureMap.put("Präfektur Miyagi", false);
            prefectureMap.put("Tokio", false);
            prefectureMap.put("Präfektur Osaka", false);
            prefectureMap.put("Präfektur Aichi", false);    
            prefectureMap.put("Präfektur Fukuoka", false);
        }
        
        //Pressvorgang (in anderer Reihenfolge)
        prefectureMap.put("Präfektur Fukuoka", true);
        prefectureMap.put("Präfektur Osaka", true);
        prefectureMap.put("Tokio", true);
        prefectureMap.put("Hokkaido", true);
        
        //Zur PräfekturClickedList hinzufügen
        for(String prefecture: prefectureMap.keySet()) {
            Boolean bool = prefectureMap.get(prefecture);
            if(bool){
                prefectureClickedList.add(prefecture);
            }
        }
        
        //Ausgabezeichenfolge
        String outPrefecture = new String();
        
        //Mittelpunkt"・"Einstellen"
        for(String clickedPref : prefectureClickedList) {
            outPrefecture = outPrefecture + clickedPref + "・";
        }
        outPrefecture = outPrefecture.substring(0, outPrefecture.length() -1);
        
        System.out.println("Präfektur, in die Sie gehen möchten:" + outPrefecture);
        
    }
}

Ausgabeergebnis

Präfekturen, in die Sie gehen möchten: Hokkaido, Osaka, Tokio, Fukuoka

Nun, ich möchte die Reihenfolge von Osaka und Tokio ändern! !! Ww

Für LinkedHashMap


import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        
        //Liste mit der gepressten Präfektur
        List<String> prefectureClickedList = new ArrayList();
        //Liste der Präfekturen Karte
//        Map<String, Boolean> prefectureMap = new HashMap();
        Map<String, Boolean> prefectureMap = new LinkedHashMap();
        {
            //Von Norden einfügen
            prefectureMap.put("Hokkaido", false);
            prefectureMap.put("Präfektur Miyagi", false);
            prefectureMap.put("Tokio", false);
            prefectureMap.put("Präfektur Osaka", false);
            prefectureMap.put("Präfektur Aichi", false);    
            prefectureMap.put("Präfektur Fukuoka", false);
        }
        
        //Pressvorgang (in anderer Reihenfolge)
        prefectureMap.put("Tokio", true);
        prefectureMap.put("Präfektur Fukuoka", true);
        prefectureMap.put("Präfektur Osaka", true);
        prefectureMap.put("Hokkaido", true);
        
        //Zur PräfekturClickedList hinzufügen
        for(String prefecture: prefectureMap.keySet()) {
            Boolean bool = prefectureMap.get(prefecture);
            if(bool){
                prefectureClickedList.add(prefecture);
            }
        }
        
        //Ausgabezeichenfolge
        String outPrefecture = new String();
        
        //Mittelpunkt"・"Einstellen"
        for(String clickedPref : prefectureClickedList) {
            outPrefecture = outPrefecture + clickedPref + "・";
        }
        outPrefecture = outPrefecture.substring(0, outPrefecture.length() -1);
        
        System.out.println("Präfektur, in die Sie gehen möchten:" + outPrefecture);
        
    }
}

Ausgabeergebnis

Präfekturen, in die Sie gehen möchten: Hokkaido, Tokio, Osaka, Fukuoka

Jep. Es gibt kein Gefühl von Unbehagen.

Höchste & höchste!

Zusammenfassung

・ Reihenfolge der Präfekturen: Nord nach Süd ・ Waschreihenfolge: waschen, spülen, dehydrieren ・ Vier Jahreszeiten: Frühling, Sommer, Herbst, Winter ・ MS mit Char: Zaku, Zugok (Rickdom), Gergugu, Ziong. ..

Diese sind für den Menschen auf den ersten Blick offensichtlich.

Überprüfen Sie den Breiten- und Längengrad von Hokkaido sowie den Breiten- und Längengrad von Fukuoka und ordnen Sie sie in der Reihenfolge von Norden an. .. Du kannst es schaffen, aber Ich konnte damit umgehen, indem ich sie in eine vorgegebene Reihenfolge </ b> brachte.

schließlich

Warum kannte ich keine so wundervolle Linked Hash Map? .. p4.jpg Weil ich ein kleiner Junge bin </ b>