Ⅰ 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());
}
});