欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java8的新特性,Collections.sort(排序的List集合)的使用,对list封装Map里面的某个值进行排序

程序员文章站 2022-03-25 16:36:02
对简单list的排序 List list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(4); Collections.sort(list)排序前是: 1 2 3 3排序后: 4 3 2 1 对li ......
--------------------------对简单list的排序----------------------------------
list<integer> list = new arraylist<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
collections.sort(list)

排序前是:
  1
  2
  3
  3

排序后:
  4
  3
  2
  1
------------------------------------------------------------------

----------------------------对list封装map里面的某个值进行排序-------------------------------------
list<map<string,object>> maplist = new arraylist<map<string,object>>();

collections.sort(maplist,new comparator<map<string,object>>() {
//降序排序
public int compare(map<string, object> o1, map<string, object> o2) {
double s = double.parsedouble(o1.get("dist").tostring());  //由于从map里面取出来的值为object类型,无法直接转换为integer类型,需要转换为double
double d = double.parsedouble(o2.get("dist").tostring());
double d1 = new double(s); //由于double类型无法直接转换为integer类型,需要用封装类先封装double
double d2 = new double(d);
integer s1 = d1.intvalue();  //使用double的intvalue方法转换为integer类型
integer s2 = d2.intvalue();
//使用entry类中的值来比较大小
return s1.compareto(s2);  //s1在前面是升序,s1在后面是降序
// //使用entry类中的键来比较大小
// return o2.getkey().compareto(o1.getkey());
}
});


才疏学浅,总结得不好,希望能够帮上需要的人。