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. Less的Extend_Less继承

    Extend就相当于Java的继承,它允许一个选择器继承另一个选择器的样式.Extend有两种语法格式. 一种是: <selector>:extend(<parentSelector ...

  2. 《Maven实战》 第7章 生命周期与插件

    7.1什么是生命周期 软件开发人员每天都在对项目进行清理.编译.测试及部署,Maven生命周期是对所有构建过程进行抽象和统一,含项目的清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等几 ...

  3. Linux 链接详解----动态链接库

    静态库的缺点: 库函数被包含在每一个运行的进程中,会造成主存的浪费. 目标文件的size过大 每次更新一个模块都需要重新编译,更新困难,使用不方便. 动态库: 是一个目标文件,包含代码和数据,它可以在 ...

  4. Javascript 数组(Array)相关内容总结

    创建数组 var colors = new Array(); //创建新数组 var num = new Array(3); //创建包含三项的新数组 var names = new Array(&q ...

  5. Scala入门系列(五):面向对象之类

    定义类 // 定义类,包含field以及method class HelloWorld { private var name = "Leo" def sayHello() { pr ...

  6. 十一招让Ubuntu 16.04用起来更得心应手(转)

    ubuntu 16.04是一种长期支持版本(LTS),是Canonical承诺发布五年的更新版.也就是说,你可以让这个版本在电脑上运行五年! 这样一来,一开始就设置好显得特别重要.你应该确保你的软件是 ...

  7. angularjs 给封装的模态框元素传值,和实现兄弟传值

    本例实现封装的元素所放的位置不同,而选择不同的传值,这里举例封装了bootstrap模态框,以后也方便大家去直接使用.方法举例如下:首先主页调用css/js有: <link rel=" ...

  8. UWP 实现App多语言为所欲为切换

    为所欲为,嗯 话不多说,先看效果吧(事先说明,我的方法不是最好的,但是我用着最有效.) [吐槽一下博客园上传的图片,我的App敲鸡漂亮滴,自带亚克力效果,怎么图片上传上来这么多的噪点啊.] [ 商店地 ...

  9. CS Round#53 E Maxor

    题意:给你N个数,你可以从中选出两个数将它们or起来得到M,求M的最大值及得到最大值的方案数. 刚了半个小时得到了一个貌似时O(N log max(Ai)^2)的方法,想了想发现貌似只能做出第一问,但 ...

  10. Linux 两台服务器之间传输文件和文件夹

    今天处理一个项目要迁移的问题,突然发现这么多图片怎么移过去,可能第一时间想到的是先从这台服务器下载下来,然后再上传到另外一台服务器上面去,这个方法确实是可行,但是实在是太费时间了,今天我就教大家怎么快 ...