Arrangements sind veraltet und legen sogar nahe (nicht), wie sie betankt werden können. Ungefähr zu dieser Zeit hatte ich die Möglichkeit, HashMap, insbesondere LinkedHashMap, zu verwenden, also werde ich es selbst aufschreiben. Es tut mir leid für die Grundlagen.
Es gibt verschiedene Arten von Kartensystemen. Es spielt keine Rolle, mit welchem Sie es normal einlegen oder herausnehmen, aber es macht einen großen Unterschied, wenn Sie verwalten, was sich darin befindet.
Name | der Unterschied |
---|---|
HashMap | Die Reihenfolge von Schlüssel und Wert ist angemessen |
Hashtable | Schlüssel sind in absteigender Reihenfolge |
TreeMap | Schlüssel sind in aufsteigender Reihenfolge |
LinkedHashMap | FIFO,LRU(Bestellung erhalten) |
Grundsätzlich einfach setzen und bekommen. Ich mache nichts anderes. Wenn der Schlüssel jedoch denselben Namen hat, ist dies der Fall. Seien Sie also vorsichtig. Selbst wenn der Wert gleich ist, wird er nicht überschrieben, wenn der Schlüssel unterschiedlich ist. Der folgende Code gibt weiterhin so viel aus, wie die Schleife eingestellt ist.
Sample.java
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Main {
public static void main(String[] args) {
int loop = 50;
//Kartendeklaration
Map<String, Integer> map = new HashMap<String, Integer>();
//Element zur Karte hinzufügen
map.put("uni", 1);
map.put("kura", 2);
map.put("kurage", 3);
map.put("nameko", 4);
map.put("nameko", 5);
//Drehen Sie den Iterator
Iterator<Map.Entry<String, Integer>> itr = map.entrySet().iterator();
// key,Wert erhalten
while(true) {
//Verwenden Sie next, um den Wert zu erhalten
Map.Entry<String, Integer> entry = itr.next();
//Wenn Sie das Ende erreicht haben, kehren Sie zum Anfang zurück
if(!itr.hasNext()) {
if(loop < 0) {
break;
}
loop--;
itr = map.entrySet().iterator();
}
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
}
Die Einschränkung mit dem obigen Code ist, dass er nicht in der Reihenfolge herauskommt, in der Sie ihn eingegeben haben. Es ist eine normale Karte, also muss es anders sein. Wenn Sie in Schwierigkeiten sind, können Sie LinkedHashMap verwenden. Einzelheiten hierzu finden Sie in den einzelnen Erklärungen.
Diesmal ist es ein bisschen, aber ich muss zwei Werte für den Schlüssel haben. Vorerst habe ich festgestellt, dass List in Map gespeichert werden kann. Für mich als Anfänger ist es eine komplizierte und wütende Struktur. Im Gegensatz zu Map wird List mit add eingefügt und mit get erhalten. Das Bild sieht folgendermaßen aus: key = "unikura", value = {1993,25} Als ich dies mit LRU von LinkedHashMap deklarierte, wurde es so
LinkedHashMap
//Das dritte Argument ist wichtig
//false: FIFO (Standard), true: LRU
LinkedHashMap<String, List<Integer>> Samplekey = new LinkedHashMap<String, List<Integer>>(30, 0.75f, true);
List<Integer> Samplevalues = new ArrayList<Integer>();
Konzeptionell (ich weiß nicht) der Schnittstelle scheint es normal, separat zu schreiben. Der unten stehende Schreibstil scheint normal zu sein, verwenden Sie ihn also bitte. Karte sieht genauso aus.
List<Datentyp>Listennamen= new ArrayList<Datentyp>(Ursprüngliche Größe);
An diesem Punkt wurde es notwendig, darüber nachzudenken, wie ** LinkedList ** und ** ArrayList ** richtig verwendet werden. Was ich diesmal versuche, ist, den Inhalt der Liste häufig neu zu schreiben. ** ArrayList ist fortlaufend nummeriert und ermöglicht den wahlfreien Zugriff auf bestimmte Elemente. ** LinkedList kann das nicht, also habe ich mich gefragt, ob es besser wäre, ArrayList zu verwenden.
public class Sample {
private int populality;
private int freshness;
public Sample(int populality, int freshness) {
this.populality = populality;
this.freshness = freshness;
}
public Sample() {
this.populality = 0;
this.freshness = 0;
}
public int getPopulality() {
return populality;
}
public void setPopulality(int populality) {
this.populality = populality;
}
public int getFreshness() {
return freshness;
}
public void setFreshness(int freshness) {
this.freshness = freshness;
}
}
private LinkedHashMap<String, Sample> Map = new LinkedHashMap<String, Sample>(30, 0.75f, false);
Sample info = this.Map.get(kename);
int Freshness = info.getFreshness();
int getPopulality = info.getPopulality();
info.setFreshness(0);
info.setPopulality(0);
Es tut mir leid, es wurde durcheinander gebracht (obwohl ich es nur wissen muss). Wenn die Anzahl der Werte gering ist, scheint es einfacher zu sein, sie selbst zu schreiben.
http://kaworu.jpn.org/kaworu/2008-04-10-2.php https://code.i-harness.com/ja-jp/q/7d9261 https://www.task-notes.com/entry/20160402/1459595902 https://qiita.com/BumpeiShimada/items/522798a380dc26c50a50
Recommended Posts