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;

        }

    }
然后在main方法中调用,(这里写的是一个java文件)
 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>>排序的更多相关文章

  1. Java中的容器类(List,Set,Map,Queue)

    Java中的容器类(List,Set,Map,Queue) 一.基本概念 Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1)Collection.一个独立元素的序列,这些元素都 ...

  2. Java学习笔记二十四:Java中的Object类

    Java中的Object类 一:什么是Object类: Object类是所有类的父类,相当于所有类的老祖宗,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object ...

  3. Java中的集合(十二) 实现Map接口的WeakHashMap

    Java中的集合(十二) 实现Map接口的WeakHashMap 一.WeakHashMap简介 WeakHashMap和HashMap一样,WeakHashMap也是一个哈希表,存储的也是键值对(k ...

  4. 多用多学之Java中的Set,List,Map

            很长时间以来一直代码中用的比较多的数据列表主要是List,而且都是ArrayList,感觉有这个玩意就够了.ArrayList是用于实现动态数组的包装工具类,这样写代码的时候就可以拉进 ...

  5. java中key值可以重复的map:IdentityHashMap

    在Java中,有一种key值可以重复的map,就是IdentityHashMap.在IdentityHashMap中,判断两个键值k1和 k2相等的条件是 k1 == k2 .在正常的Map 实现(如 ...

  6. Java中的list与Set、Map区别及适用场景

    Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类,但是却让其被继承产生了两个接口,就是Set和List.Set中不能包含重复的元素.List是一个有序的集合,可以包含 ...

  7. Java基础学习总结(29)——浅谈Java中的Set、List、Map的区别

    就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...

  8. Java基础(43):Java中的Object类与其方法(转)

    Object类 java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. O ...

  9. Java中list<Object>集合去重实例

    一:Java中list去重的方法很多,下面说一下其中一种方法:把list里的对象遍历一遍,用list.contain(),如果不存在就放入到另外一个list集合中: 二:实例 这里需要注意的是:使用c ...

随机推荐

  1. Mybatis(二)参数(Parameters)传递

    Mybatis参数(Parameters)传递  1..单个参数 可以接受基本类型,对象类型,集合类型的值.这种情况MyBatis可直接使用这个参数,不需要经过任何处理. <!-- 根据id查询 ...

  2. Retrofit网络请求库应用01

    PS:什么是Retrofit? 在官方文档中有这样一句话--A type-safe HTTP client for Android and Java(一个类型安全的http client库),具体的话 ...

  3. mysql如何查看索引使用情况以及优化 - guols0612

    mysql中支持hash和btree索引.innodb和myisam只支持btree索引,而memory和heap存储引擎可以支持hash和btree索引 我们可以通过下面语句查询当前索引使用情况: ...

  4. Hexo + github 打造个人博客

    前两年开始用 wordpress 搭了一个网站,但服务器是在 Linode 上,之所以要放在 Linode 上,要从买的域名说起,因为我买的域名是 fengzheng.pub ,.pub 是不允许备案 ...

  5. web前端素材整理汇总

    最近一直搞前端开发,整理下前端用的一些常用素材,分享给大家 框架类 Vue:https://cn.vuejs.org/ iview:https://www.iviewui.com/ 插件类 Jquer ...

  6. 异常处理第三讲,SEH(结构化异常处理),异常展开问题

    异常处理第三讲,SEH(结构化异常处理),异常展开问题 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) 不知道昨天有木有 ...

  7. 树的平衡 AVL Tree

    本篇随笔主要从以下三个方面介绍树的平衡: 1):BST不平衡问题 2):BST 旋转 3):AVL Tree 一:BST不平衡问题的解析 之前有提过普通BST的一些一些缺点,例如BST的高度是介于lg ...

  8. bzoj4974 字符串大师

    4974: 字符串大师 Time Limit: 1 Sec  Memory Limit: 256 MBSubmit: 310  Solved: 155[Submit][Status][Discuss] ...

  9. js 消抖(debounce)与节流(throttle)

    前言 故事发生在与大创的又一次撕逼(日常)中,我方坚定的认为:作为社会主义接班人,节流与消抖的界限是明显的,是不容混肴的,是不可侵犯的!对方辩友坚持地觉得:界限是模糊的,行为是暧昧的,性别是可以忽视的 ...

  10. TRITON恶意软件简单分析与防护方案

    一.攻击简介 2017年12月,安全研究人员发现了一款针对工控系统安全仪表系统(SIS)的恶意软件"TRITON",该软件以施耐德电气Triconex安全仪表控制系统为目标展开攻击 ...