public static void main(String[] args) {
List<Map<Object,Object>> list=new ArrayList<Map<Object,Object>>();
List<Map<Object,Object>> list1=new ArrayList<Map<Object,Object>>();
Map<Object, Object> map=new HashMap<Object, Object>();
Map<Object, Object> map1=new HashMap<Object, Object>();
Map<Object, Object> map2=new HashMap<Object, Object>();
Map<Object, Object> map3=new HashMap<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);
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.size()-i-1; j++) {
Map<Object, Object> maptemp=new HashMap<Object, Object>();
Map<Object, Object> map11;
Map<Object, Object> map22;
map11= list.get(j);
map22= list.get(j+1);
int map1value=(Integer) list.get(j).get("number");
int map2value=(Integer) list.get(j+1).get("number");
if (map1value<map2value) {
maptemp=map11;
map11=map22;
map22=maptemp;
}
}
list1.add(list.get(list.size()-i));
}
哪里错了呢
用我这个排序不是更简单么
import java.util.ArrayList;您回答的对,现在我想问下用冒泡排序的话,怎么才能写出来呢?谢谢你
追答不好意思,才看见,你这个不适合用冒泡排序做。实现起来非常麻烦,冒泡的,建议你理解的概念,就可以了。
上面代码的30行~40行,用下面的代替
System.out.println(list);这个是用冒泡排序实现的,你对比下吧,哪个简单?
你出现的问题是:对象间用等号赋值,那么就让这两个对象指向了同一个内存地址,也就是等同的,即,可以理解为对东一个文件创建两个快捷方式,但实际指向的还是同一个文件。利用list里面的set方法来赋值