java List 排序 Collections.sort() 对 List 排序

实体类:

class User {
 String name;
 String age;

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

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

import java.util.Comparator;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;

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

   //首先比较年龄,如果年龄相同,则比较名字

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

}

测试类:

public class SortTest {

 public static void main(String[] args){
  List userlist=new ArrayList();
  userlist.add(new User("dd","4"));
  userlist.add(new User("aa","1"));
  userlist.add(new User("ee","5"));
  userlist.add(new User("bb","2"));
  userlist.add(new User("ff","5"));
  userlist.add(new User("cc","3"));
  userlist.add(new User("gg","6"));

  ComparatorUser comparator=new ComparatorUser();
  Collections.sort(userlist, comparator);

  for (int i=0;i<userlist.size();i++){
   User user_temp=(User)userlist.get(i);
      System.out.println(user_temp.getAge()+","+user_temp.getName());
  }

 }
}

首先年龄排序,如果年龄相同,则按名字排序。

结果:
   1, aa
   2, bb
   3, cc
   4, dd
   5, ee                    //注意:同样是5岁的人,则比较名字(ee,ff),然后排序
   5, ff
   6, gg

时间: 2024-12-08 18:52:18

java List 排序 Collections.sort() 对 List 排序的相关文章

Java语言利用Collections.sort对Map,List排序

1.main方法包含TreeMap排序1,TreeMap排序2,HashMap排序,List<Integer>排序,List<Bean>排序,List<Map>排序 package com.tao.test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Li

列表排序 --- Collections.sort()

Collections.sort()能够实现对List等Collection集合排序 Collections.sort(List<Type> list) 这种情况要求Type类型自身实现Comparable接口(类中覆盖compareTo方法),如下所示: 或者下面这种情况 Collections.sort(List<Type> list,new SortComparator()); 这种情况下无需再Type上实现comparable接口,需要单独实现Comparator接口(实现

Java—集合框架 Collections.sort()、Comparable接口和Comparator接口

Collentions工具类--java.util.Collections Collentions是Java集合框架中,用来操作集合对象的工具类,也是Java集合框架的成员,与List.Map和Set是并列的. Collections.sort() 排序方法,实现对List对象中的元素进行排序. package com.test.collection; import java.util.ArrayList; import java.util.Collections; import java.ut

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

1.java提供的默认list排序方法 主要代码: List<String> list = new ArrayList();list.add("刘媛媛"); list.add("王硕");list.add("李明");list.add("刘迪");list.add("刘布"); //升序Collections.sort(list,Collator.getInstance(java.util.Lo

java List 排序 Collections.sort()

用Collections.sort方法对list排序有两种方法  第一种是list中的对象实现Comparable接口,如下: [java] view plain copy /** * 根据order对User排序 */ public class User implements Comparable<User>{ private String name; private Integer order; public String getName() { return name; } public

java Collections.sort()实现List排序自定义方法

方法一: package testSimple; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class testCollectionSort { public static void main(String[] args) { List<TblPowerGroup> list = new ArrayLis

List排序Collections.sort()

方式一: 使用public static <T extends Comparable<? super T>> void sort(List<T> list)方法对list进行排序: 在要排序的list对象中 implements Comparable 并重写compareTo(方法) public class ClickInfo implements Comparable<ClickInfo>{ private Integer cid; private St

List排序Collections.sort 重写compare

1 static List<Integer> intList = Arrays.asList(2,5,7, 3, 1); 2 3 public static void main(String[] args) { 4 5 System.out.println("before sort:"); 6 PrintUtil.showList(intList); 7 System.out.println("========================="); 8

Java中Collections.sort()排序详解

第一种:Comparable 排序接口 若一个类实现了Comparable接口,就意味着"该类支持排序". 假设"有一个List列表(或数组),里面的元素是实现了Comparable接口的类",则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序. 此外,"实现Comparable接口的类的对象"可以用作"有序映射(如TreeMap)"中的键或"有序集合(Tree