Ⅰ java list<map> 排序
用我這個排序不是更簡單么
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.Comparator;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
publicclass${
publicstaticvoidmain(String[]args){
List<Map<Object,Object>>list=newArrayList<Map<Object,Object>>();
Map<Object,Object>map=newHashMap<Object,Object>();
Map<Object,Object>map1=newHashMap<Object,Object>();
Map<Object,Object>map2=newHashMap<Object,Object>();
Map<Object,Object>map3=newHashMap<Object,Object>();
map.put("number",1);
map1.put("number",2);
map2.put("number",4);
map3.put("number",3);
list.add(map);
list.add(map1);
list.add(map2);
list.add(map3);
Collections.sort(list,newComparator<Map<Object,Object>>(){
publicintcompare(Map<Object,Object>o1,Map<Object,Object>o2){
intmap1value=(Integer)o1.get("number");
intmap2value=(Integer)o2.get("number");
returnmap1value-map2value;
}
});
System.out.println(list);
}
}
Ⅱ Java中List Set Map 是否有序等總結
其實都是有序的。
不過set
和
map
的排序規則不是通常意義上的1,2,3這樣排的而是按照HashCode,演算法比較復雜,所以通常把set和map當作無序的
list
的有序很簡單,就是按添加的順序
Ⅲ Java中 map集合能排序嗎
Java中的Map默認是對元素不排序的,但是Map的實現類TreeMap能夠把它保存的記錄根據key排序,默認是按升序排序。如果我們想要改變排序方式,則需要使用比較器:Comparator。
Ⅳ java中list和map的區別
List中的對象按照索引位置排序,可以有重復對象,允許按照對象在集合中的索引位置檢索對象,如通過list.get(i)方式來獲得List集合中的元素。
Map中的每一個元素包含一個鍵對象和值對象,它們成對出現。鍵對象不能重復,值對象可以重復。
Ⅳ java中list裡面存放map,根據map中的某兩個個欄位進行排序
packagecom.compare.test;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
publicclassMain{
publicstaticvoidmain(String[]args){
MainmainTest=newMain();
mainTest.sortMap();
}
publicvoidsortMap(){
List<Map<Integer,Double>>maps=newArrayList<Map<Integer,Double>>();
for(inti=0;i<10;i++){
HashMap<Integer,Double>map=newHashMap<Integer,Double>();
for(intj=0;j<2;j++){
map.put(j,Math.random());
}
maps.add(map);
}
for(Map<Integer,Double>map:maps){
System.out.println(getValue(map));
}
System.out.println("************************");
Map<Integer,Double>currentMap;
for(inti=0;i<maps.size()-1;i++){
for(intj=0;j<maps.size()-i-1;j++){
if(getValue(maps.get(j))>getValue(maps.get(j+1))){
currentMap=maps.get(j+1);
maps.set(j+1,maps.get(j));
maps.set(j,currentMap);
}
}
}
for(Map<Integer,Double>map:maps){
System.out.println(getValue(map));
}}
publicDoublegetValue(Map<Integer,Double>currentMap){
returncurrentMap.get(0)+currentMap.get(1);
}
}
我採用最簡單的排序大數沉底。而且getValue
方法你可以自己實現,決定使用哪幾個進行排序。(我們有進行key值不存在的判斷)
Ⅵ 如何對Map進行字典排序Java
//根據 Map的key進行字典排序
Map<String, String> parameterMap = new HashMap<String, String>();
List<Map.Entry<String,String>> list = new ArrayList<Map.Entry<String,String>>(parameterMap.entrySet());
Collections.sort(list,new Comparator<Map.Entry<String,String>>() {
//升序排序
public int compare(Entry<String, String> o1,
Entry<String, String> o2) {
return o1.getKey().compareTo(o2.getKey());
}
});