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 ...
随机推荐
- Foundation框架的小总结
一.Foundation框架—结构体 一.基本知识 Foundation框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数 ...
- iphone6 plus导入联系人或者通讯录
iphone6 plus快速导入联系人或者通讯录(使用QQ同步助手,真的很简单) 最近换了部手机,由于之前的手机保存联系人都是保存在手机,没有备份在sim卡,由于sim卡被我剪小了,不能插回原来的手机 ...
- Model中设置表单验证方法
Model类里面定义$_validate属性支持的验证因子格式: 格式:array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间). 验证条件: (1)Model::EXISTS_TO_ ...
- Centos7 下安装Docke
为什么 要用centos7呢. 现在哪个企业用的是centos7呀.不都是老版本么. 对咱们是新技术.所以只有新系统才可以用.因为docker要求服务CentOS6以上,kernel 版本必须2.6. ...
- 用phpmailer发送邮件提示SMTP Error: Could not connect to SMTP host解决办法
之前做项目的时候做了一个用phpmailer发送邮件的功能<CI框架结合PHPmailer发送邮件>,昨天步署上线(刚开始用新浪云,嫌贵,换成阿里了),测试的时候,发送邮件却意外报错了.. ...
- Yii2如何添加sql日志记录的配置信息
在使用Yii2框架的时候,常常会出现没有sql日志记录的问题.在代码里一句一句的打印sql语句也不现实.所以就要用文件记录起来. 在 config/web.php 里面的 log配置中增加如下配置 [ ...
- 用python的requests第三方模块抓取王者荣耀所有英雄的皮肤
本文使用python的第三方模块requests爬取王者荣耀所有英雄的图片,并将图片按每个英雄为一个目录存入文件夹中,方便用作桌面壁纸 下面时具体的代码,已通过python3.6测试,可以成功运行: ...
- java 接口测试,使用excel做数据驱动(二)
承接上篇. 改变我们的测试驱动方式,灵活设置测试用例. 数据驱动测试 数据驱动测试的核心是: 测试数据与测试脚本分离,实现测试脚本参数化, 提高测试脚本的可重用性.在自动化功能测试中如果灵活使用数据源 ...
- 小白的Python之路 day1 Python3的bytes/str之别
原文:The bytes/str dichotomy in Python 3 Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分.文本总是Unicode,由str类型表示,二 ...
- uva 1378 - A Funny Stone Game(组合游戏)
题目链接:uva 1378 - A Funny Stone Game 题目大意:两个人玩游戏,对于一个序列,轮流操作.每次选中序列中的i,j,k三个位置要求i<j≤k,然后arr[i]减1,对应 ...