Les arrangements sont obsolètes, et il est même suggéré (non) qu'ils puissent être alimentés.À cette époque, j'ai eu l'occasion d'utiliser HashMap, en particulier LinkedHashMap, donc je l'écrirai moi-même. Je suis désolé pour les bases.
Il existe plusieurs types de systèmes cartographiques. Peu importe celui que vous utilisez pour le mettre ou le retirer normalement, mais cela fait une grande différence lorsque vous gérez ce qu'il contient.
Nom | la différence |
---|---|
HashMap | L'ordre de la clé et de la valeur est approprié |
Hashtable | les clés sont dans l'ordre décroissant |
TreeMap | les clés sont dans l'ordre croissant |
LinkedHashMap | FIFO,LRU(Commande obtenue) |
Fondamentalement, il suffit de mettre et d'obtenir. Je ne fais rien d'autre. Cependant, si vous utilisez le même nom pour la clé, ce sera le cas, alors soyez prudent. Même si la valeur est la même, elle ne sera pas écrasée si la clé est différente. Le code ci-dessous continue de sortir autant que la boucle est définie.
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;
//Déclaration de carte
Map<String, Integer> map = new HashMap<String, Integer>();
//Ajouter un élément à la carte
map.put("uni", 1);
map.put("kura", 2);
map.put("kurage", 3);
map.put("nameko", 4);
map.put("nameko", 5);
//Tournez l'itérateur
Iterator<Map.Entry<String, Integer>> itr = map.entrySet().iterator();
// key,Obtenez de la valeur
while(true) {
//Utilisez suivant pour obtenir la valeur
Map.Entry<String, Integer> entry = itr.next();
//Lorsque vous atteignez la fin, revenez au début
if(!itr.hasNext()) {
if(loop < 0) {
break;
}
loop--;
itr = map.entrySet().iterator();
}
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
}
La mise en garde avec le code ci-dessus est qu'il ne sort pas dans l'ordre dans lequel vous l'avez mis. C'est une carte normale, donc elle doit être différente. Si vous avez des problèmes, vous pouvez utiliser LinkedHashMap. Pour plus de détails sur chacun, veuillez lire chaque explication.
Cette fois, c'est un peu, mais je dois avoir deux valeurs pour la clé. Pour le moment, j'ai trouvé que List peut être stocké dans Map. Il a une structure compliquée et en colère pour moi en tant que débutant. Contrairement à Map, List est inséré avec add et obtenu avec get. L'image est comme ceci: key = "unikura", value = {1993,25} Quand j'ai déclaré cela avec LRU de LinkedHashMap, c'est devenu comme ça
LinkedHashMap
//Le troisième argument est important
//false: FIFO (par défaut), true: LRU
LinkedHashMap<String, List<Integer>> Samplekey = new LinkedHashMap<String, List<Integer>>(30, 0.75f, true);
List<Integer> Samplevalues = new ArrayList<Integer>();
Conceptuellement (je ne connais pas) l'interface, il semble normal d'écrire séparément. Le style d'écriture ci-dessous semble normal, veuillez donc l'utiliser. La carte a la même apparence.
List<Type de données>Liste de noms= new ArrayList<Type de données>(Dimension initiale);
À ce stade, il est devenu nécessaire de réfléchir à la manière d'utiliser correctement ** LinkedList ** et ** ArrayList **. Ce que j'essaie de faire cette fois, c'est de réécrire fréquemment le contenu de la liste. ** ArrayList est numéroté en séquence, permettant un accès aléatoire à des éléments spécifiques. ** LinkedList ne peut pas faire cela, alors je me suis demandé s'il ne valait pas mieux utiliser ArrayList.
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);
Je suis désolé, il a été foiré (même si je n'ai besoin que de savoir) Si le nombre de valeurs est petit, il semble plus facile de l'écrire par vous-même.
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