Java中list<Object[]>、list<Student>、list<Map<String,String>>排序
1:list<Object[]>的排序
public static void main(String[] args) {
// TODO Auto-generated method stub
Object[] o1 = new Object[4];
o1[0] = "5";
o1[1] = "o1";
o1[2] = "o11";
o1[3] = "o111";
Object[] o2 = new Object[4];
o2[0] = "3";
o2[1] = "o2";
o2[2] = "o22";
o2[3] = "o222";
List<Object[]> list = new ArrayList<>();
list.add(o1);
list.add(o2);
//很明显我们先添加的对象o1,所以先打印o1,
for (inti = 0; i < list.size(); i++) {
for (intj = 0; j < 4; j++) {
System.out.print(list.get(i)[j] + " ");
}
}
System.out.println("\n排序后-------");
sortList(list);
//排序后:
for (inti = 0; i < list.size(); i++) {
for (intj = 0; j < 4; j++) {
System.out.print(list.get(i)[j] + " ");
}
}
}
public staticvoid sortList(List<Object[]> ls) {
Collections.sort(ls, new Comparator<Object[]>() {
@Override
public int compare(Object[] o1, Object[] o2) {
if (Integer.valueOf(o1[0].toString()) > Integer.valueOf(o2[0].toString())) {
return 1;
}
return -1;
}
});
}
2:list<Student>排序,主要是正对汉族的排序,按照拼音排序.
首先写一个Student类
package com.model;
public class Student {
public Stringname;
publicintage;
public Student(Stringname, intage) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
returnname;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
returnage;
}
}
Student stu1 = new Student("张三", 23);
Student stu2 = new Student("李四", 25);
List<Student> listStudent = new ArrayList<>();
listStudent.add(stu1);
listStudent.add(stu2);
System.out.println();
for (int i = 0; i < listStudent.size(); i++) {
System.out.print(listStudent.get(i).getName() + "---" + listStudent.get(i).getAge());
}
System.out.println("\n排序后");
sortListStudent(listStudent);
for (int i = 0; i < listStudent.size(); i++) {
System.out.print(listStudent.get(i).getName() + "---" + listStudent.get(i).getAge());
}
写一个排序方法
public staticvoid sortListStudent(List<Student> ls) {
Collections.sort(ls, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
String s1 = o1.getName();
String s2 = o2.getName();
if (s1.compareTo(s2) > 0) {
return -1;
}
return 1;
}
});
}
3:list<Map<String,String>>排序问题:
public class MapListSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Map<String, String>> listMap = new ArrayList<>();
Map<String, String> map1 = new HashMap<String, String>();
map1.put("map001", "001");
map1.put("map003", "map003");
map1.put("map002", "map002");
Map<String, String> map2 = new HashMap<String, String>();
map2.put("map001", "101");
map2.put("map003", "map303");
map2.put("map002", "map202");
//先添加的map2,但是map2中map001的值大于map1中的map001的值。
listMap.add(map2);
listMap.add(map1);
for (int i = 0; i < listMap.size(); i++) {
System.out.print(listMap.get(i).get("map001") + "," + listMap.get(i).get("map002") + "," + listMap.get(i).get("map003") + "\n");
}
mapSorts(listMap);
System.out.println("\n排序后:");
for (int i = 0; i < listMap.size(); i++) {
System.out.print(listMap.get(i).get("map001") + "," + listMap.get(i).get("map002") + "," + listMap.get(i).get("map003") + "\n");
}
}
public static void mapSorts(List<Map<String, String>> map) {
Collections.sort(map, new Comparator<Map<String, String>>() {
@Override
public int compare(Map<String, String> o1, Map<String, String> o2) {
// TODO Auto-generated method stub
if (o1.get("map001").compareTo(o2.get("map001")) > 0) {
return 1;
}
return -1;
}
});
}
}
Java中list<Object[]>、list<Student>、list<Map<String,String>>排序的更多相关文章
- Java中的容器类(List,Set,Map,Queue)
Java中的容器类(List,Set,Map,Queue) 一.基本概念 Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1)Collection.一个独立元素的序列,这些元素都 ...
- Java学习笔记二十四:Java中的Object类
Java中的Object类 一:什么是Object类: Object类是所有类的父类,相当于所有类的老祖宗,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object ...
- Java中的集合(十二) 实现Map接口的WeakHashMap
Java中的集合(十二) 实现Map接口的WeakHashMap 一.WeakHashMap简介 WeakHashMap和HashMap一样,WeakHashMap也是一个哈希表,存储的也是键值对(k ...
- 多用多学之Java中的Set,List,Map
很长时间以来一直代码中用的比较多的数据列表主要是List,而且都是ArrayList,感觉有这个玩意就够了.ArrayList是用于实现动态数组的包装工具类,这样写代码的时候就可以拉进 ...
- java中key值可以重复的map:IdentityHashMap
在Java中,有一种key值可以重复的map,就是IdentityHashMap.在IdentityHashMap中,判断两个键值k1和 k2相等的条件是 k1 == k2 .在正常的Map 实现(如 ...
- Java中的list与Set、Map区别及适用场景
Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类,但是却让其被继承产生了两个接口,就是Set和List.Set中不能包含重复的元素.List是一个有序的集合,可以包含 ...
- Java基础学习总结(29)——浅谈Java中的Set、List、Map的区别
就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...
- Java基础(43):Java中的Object类与其方法(转)
Object类 java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. O ...
- Java中list<Object>集合去重实例
一:Java中list去重的方法很多,下面说一下其中一种方法:把list里的对象遍历一遍,用list.contain(),如果不存在就放入到另外一个list集合中: 二:实例 这里需要注意的是:使用c ...
随机推荐
- 企业级监控zabbix基础
一个标准的监控系统所具备的基本功能: 1.数据的采集 2.为了展示其长期走势,将数据存储下来 3.万一某次采样的结果不在被认为是合理的范围内,然后就会做出告警操作,尽早的让相关人员得知到此消息 4.展 ...
- python_day05(去爬登录的豆瓣)
# 爬豆瓣需要用cookie# 需要注意隐藏的参数,即input 里面的默认的一些参数# 需要自己注册一个账户密码import urllib.requestimport http.cookiejarf ...
- SpringCloud学习笔记(3)——Hystrix
参考Spring Cloud官方文档第13.14.15章 13. Circuit Breaker: Hystrix Clients Netflix提供了一个叫Hystrix的类库,它实现了断路器模式. ...
- webpack中实现按需加载
webpack中的require.ensure()可以实现按需加载资源包括js,css等,它会给里面require的文件单独打包,不和主文件打包在一起,webpack会自动配置名字,如0.js,1.j ...
- 利用python web框架django实现py-faster-rcnn demo实例
操作系统.编程环境及其他: window7 cpu python2.7 pycharm5.0 django1.8x 说明:本blog是上一篇blog(http://www.cnblogs.co ...
- 用Python删除本地目录下某一时间点之前创建的所有文件
因为工作原因,需要定期清理某个文件夹下面创建时间超过1年的所有文件,所以今天集中学习了一下Python对于本地文件及文件夹的操作.网上 这篇文章 简明扼要地整理出最常见的os方法,抄袭如下: os.l ...
- SpringBoot集成Redis实现缓存处理(Spring AOP实现)
第一章 需求分析 计划在Team的开源项目里加入Redis实现缓存处理,因为业务功能已经实现了一部分,通过写Redis工具类,然后引用,改动量较大,而且不可以实现解耦合,所以想到了Spring框架的A ...
- Js 调用 WebService 实例
Html页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/ ...
- Netty4 学习笔记之二:客户端与服务端心跳 demo
前言 在上一篇Netty demo 中,了解了Netty中的客户端和服务端之间的通信.这篇则介绍Netty中的心跳. 之前在Mina 中心跳的使用是通过继承 KeepAliveMessageFacto ...
- Java读取打印机自定义纸张.
打印出现截断? 对于自定义纸张打印, 一定要先在打印机配置那边添加, 不然会出现截断. 例如打印1000*500, 出来是正常的, 打印216*139, 出现了截断. 因为java默认的打印, 会从打 ...