`
jackroomage
  • 浏览: 1196943 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

java List 排序 Collections.sort() 对 List 排序(首先年龄排序,如果年龄相同,则按名字排序)

阅读更多

//一个POJO例子

 

public class User {
 private int age;
 private String name;
 
 public User(String name,int age){
  this.name=name;
  this.age=age;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
}

 

 

 

//具体的比较类,实现Comparator接口

 

 

public class ComparatoUser implements Comparator {
  public int compare(Object arg0, Object arg1) {
    User user0=(User)arg0;
    User user1=(User)arg1;

//     首先比较年龄,如果年龄相同,则比较名字
   int flag=user0.getAge()-(user1.getAge());

    if(flag==0){
     return user0.getName().compareTo(user1.getName());
    }else{
     return flag;
    }
   }
}

 

 

 

 

//测试类

 

public class TestUser {
 public static void main(String[] args){
  List list=new ArrayList();
  list.add(new User("aa",12));
  list.add(new User("dd",888));
  list.add(new User("ff",123));
  list.add(new User("cc",123));
  list.add(new User("bb",142));
  list.add(new User("ww",126));
  
  

 

主要看看拿的那个对象


  ComparatoUser com=new ComparatoUser();
  Collections.sort(list, com);

 

 


  
  for(int i=0;i<list.size();i++){
   User u=(User)list.get(i);
   System.out.print(u.getAge()+"/");
   System.out.println(u.getName());
  }
 }

}

 

 

 

 

 

 

//&&&&&&&&&&&&&&&&&&&&&      上面和下面的方法实现功能是一样的,注意观察不同点 

 

 

 

pojo

 

public class User implements Comparator<User> {
 
    private String name;
    private int age;
   
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 
 public int compare(User o1, User o2) {
 
      if(o1.getAge()-(o2.getAge())!=0){
       return o1.getAge()-(o2.getAge());
    }else{
       return  o1.getName().compareTo(o2.getName());
     }
 }
}

 

 

 

测试类

 

 

 

 

public class Test {
  public static void main(String[] args){
   User u1=new User();
   u1.setAge(13);
   u1.setName("d");
  
   User u2=new User();
   u2.setAge(6);
   u2.setName("h");
  
   User u3=new User();
   u3.setAge(3);
   u3.setName("a");
  
   User u4=new User();
   u4.setAge(23);
   u4.setName("c");
   List<User> al=new ArrayList<User>();
   al.add(u1);
   al.add(u2);
   al.add(u3);
   al.add(u4);

 //主要观察里面的对象new User();和上面的实现有什么不同

 

 Collections.sort(al,new User());
  
   Iterator ite=al.iterator();
   while(ite.hasNext()){
    User user=(User)ite.next();
    System.out.print(user.getAge()+"/");
    System.out.println(user.getName());
   }
  }
 }

 

 

 

另一篇博客总结在线

分享到:
评论
2 楼 qq591920734 2016-02-19  
  
1 楼 qq591920734 2016-02-19  
[color=orange][/color]包女包女不女

相关推荐

    java List 排序 Collections.sort

    NULL 博文链接:https://xuedong.iteye.com/blog/1147254

    JAVA对list集合进行排序Collections.sort()

    主要介绍了JAVA对list集合进行排序Collections.sort(),需要的朋友可以参考下

    Java Collections.sort()实现List排序的默认方法和自定义方法

    主要介绍了Java Collections.sort()实现List排序的默认方法和自定义方法,需要的朋友可以参考下

    用Java集合中的Collections.sort方法如何对list排序(两种方法)

    本文通过两种方法给大家介绍java集合中的Collections.sort方法对list排序,第一种方式是list中的对象实现Comparable接口,第二种方法是根据Collections.sort重载方法实现,对collections.sort方法感兴趣的朋友一起...

    java 字符串排序

    字符串数组 排序

    JAVA中Collections工具类sort()排序方法

    主要介绍了JAVA中Collections工具类sort()排序方法,非常具有实用价值,需要的朋友可以参考下。

    Java 字母数字字符串 混合排序(绝对超值管用)

    List&lt;String&gt; location=new ArrayList(); 一行代码轻松搞定混合排序问题 Collections.sort(location, new SortUtils(true));

    C# 中 List.Sort运用(IComparerT)排序用法

    在项目中由于要解析一个箱单号,要求从小到大的顺序。由于循环从数据库取出来取得值不是按照...  使用指定的比较器对整个 List&lt;T&gt; 中的元素进行排序。  命名空间: System.Collections.Generic  程序集: msco

    C#通过IComparable实现ListT.sort()排序

    通常来说,List&lt;T&gt;.sort()可以实现对T的排序,比如List&lt;int&gt;.sort()执行后集合会按照int从小到大排序。如果T是一个自定义的Object,可是我们想按照自己的方式来排序,那该怎么办呢,其实可以用过IComparable接口重写...

    ArrayList反转排序1

    用百Collections.reverse(list)即可度。}//先升序排序Collections.sort(list);//再反转Collections.r

    Java对象排序、中文排序、SortedSet排序使用和源码讲解

    但是通常排序算法不得不让程序员在写代码的过程中陷入对底层很多指针和位置的理解,java不希望这样,所以排序大多可以由java帮你做掉,例如,你要对一个数组排序,通过:Collections.sort(list)那么这个list被排序了...

    C#基础教程之IComparable用法,实现ListT.sort()排序

    List&lt;T&gt;.sort()可以实现对T的排序,比如List&lt;int&gt;.sort()执行后集合会按照int从小到大排序。如果T是一个自定义的Object,可是我们想按照自己的方式来排序,那该怎么办呢,其实可以用过IComparable接口重写CompareTo...

    set.list.map接口

    //如果要对键进行排序Map map=new TreeMap(); Map,String&gt; map=new TreeMap,String&gt;(); //Map map=new HashMap(); map.put(1, "yi"); map.put(23, "er"); map.put(12, "san"); map.put(3, "si"); //遍历...

    Collections集合工具类排序.docx

    数组有工具类Arrays,集合也有一个工具类Collections,这里练习一下集合工具类的排序方法,顺便过一下sort排序方法,比较器。 sort方法 sort(List&lt;T&gt; list):根据其元素的natural ordering对指定的列表进行排序。 ...

    11集合.rarjava 集合类

    java 集合类的排序主要是用Collections.sort方法,Collections和Collection是不一样的,前者是类,后者是接口,在这里,我主要是想说明它的sort方法的几种类型, 提示:实现接口的方法时,只需要比较两个数,大的返回1,...

    【Robotframework】列表List的常用操作.pdf

    Create List # 新建⼀个list变量 @{list} create list aa bb # 为list追加数据 同Append To List @{list} create list @{list} cc 打印list时,使⽤log many:log many @{list} 若⽤log打印,则写成:log ${list} ...

    java常用工具类的使用

    而在Java类库中有一个Arrays类的sort方法已经实现各种数据类型的排序算法。程序员只需要调用该类的方法即可。 代码演示:Arrays实现排序 public static void main(String[] args) { int[] ages={23, 45,12,76,34,...

    java面试.rar

    List 和 Set 的区别,final finally finalize,Java获取反射的三种方法,Arrays.sort 和 Collections.sort 实现原理 和区别

    JAVA 一道编程题目

    JAVA 一道编程题目 核心代码: Collections.sort(list, String.CASE_INSENSITIVE_ORDER);//根据指定的字母方式排序

    Android实现列表数据按名称排序、中英文混合排序

    有时候我们需要多列表中的数据进行特定的排序,最近项目中用到的是按名称排序,所以简单来说一下: 效果图: 排序方法: Collections.sort(students, new SortChineseName()); for (Student s : students) { Log...

Global site tag (gtag.js) - Google Analytics