Voici un résumé de la façon de trier la carte (HashMap) en utilisant la valeur en java. Ici, nous considérons une situation où vous souhaitez trier les valeurs de A_array en même temps en utilisant B_array. Puisqu'il trie la liste avec le type d'entrée de HashMap, il peut être utilisé avec d'autres cartes telles que TreeMap.
Solution.java
import java.util.*;
class Solution {
public static void main(String[] args) {
int[] A_array = {1,6,3,10,5};
int[] B_array = {8,21,13,4,5};
tryComperator(A_array, B_array);
}
public static void tryComperator(int[] a, int[] b){
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
//Stockez les éléments du tableau dans hashmap.
for (int i = 0; i < a.length; i++){
map.put(a[i], b[i]);
}
//Stockez chaque élément de Hashmap dans une liste.
List<Map.Entry> mapValuesList = new ArrayList<Map.Entry>(map.entrySet());
//Essayez de sortir mapValuesList.(10=Il semble qu'il soit sorti sous la forme de 4.)
for (Map.Entry v: mapValuesList){
System.out.println("map>> "+v+",key>> "+v.getKey()+"value>> "+v.getValue());
}
//Instancier la classe Comparator
Comparator<Map.Entry> comparator = new Comparator<Map.Entry>() {
public int compare(Map.Entry entry1, Map.Entry entry2) {
return ((Integer) entry1.getValue()).compareTo((Integer) entry2.getValue());
}
};
//Trier à l'aide du comparateur.
Collections.sort(mapValuesList, comparator);
//Sortie pour confirmation
for (Map.Entry s : mapValuesList) {
System.out.println(s);
}
}
}
map>> 1=8,key>> 1value>> 8
map>> 3=13,key>> 3value>> 13
map>> 5=5,key>> 5value>> 5
map>> 6=21,key>> 6value>> 21
map>> 10=4,key>> 10value>> 4
10=4
5=5
1=8
3=13
6=21
Il a été produit par ordre croissant de valeur.
Référence: http://kevin3sei.blog95.fc2.com/blog-entry-159.html
Recommended Posts