`
zhubin215130
  • 浏览: 140130 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

comparator对list排序

    博客分类:
  • JAVA
阅读更多
Collections.sort() 对 List 排序
import java.util.Comparator;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;

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;
}
}

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, ff
   6, gg
分享到:
评论

相关推荐

    List对象集合的排序:比较器Comparator(简单例子)

    List对象集合的排序:比较器Comparator

    Compable和Comparator自定义对象属性排序

    可以通过两种方式自定义对象的属性大小进行比较,对一个list或数组对根据属性排序一个list或数组

    JAVA集合的使用(List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类、equals、hashCode)

    要注意的是List,Set,Queue继承了Collection接口,...这里想用一个简单的例子展示一下他们的使用,内容包括:List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类,泛型、重写equals、hashCode

    Java编程实现中英混合字符串数组按首字母排序的方法

    本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法。分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们...Comparator&lt;Object&gt; com = Collator.getInstance(java.util.Locale

    Java中Comparator接口与Comparable接口的区别

    1. Comparator 和 Comparable 相同的地方  他们都是java的一个接口, 并且是用来对自定义的class比较大小的, ... 这时肯定有人要问, 那为什么可以排序一个字符串list呢:  如 StringList{hello1 , h

    Collections集合工具类排序.docx

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

    java实现别踩白块儿源码-SortedList:用Java编写的SortedList的实现。可以与实现Comparable接口的对象一起使用

    它是使用Comparator对象构造的,该对象可以将两个对象进行比较,从而使SortedList可以将其元素按升序或降序排序。 当且仅当要使用的对象实现Comparable接口时,我们也可以创建不带Comparator对象的SortedList。 用法...

    Java学习过程中应该理解的一些重点内容

    通过对这两个类的熟悉,能够将List、Set和Map三大类的基本用法掌握。另外它的几个辅助类要掌握:Iterator和Collections。Collections类 提供容器的一些通用工具,比如排序。而说到排序,就牵扯出了比较器:...

    Android 对Map按key和value分别排序的实例

    TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。 HashMap的值是没有顺序的,它是按照...

    java Lucene 中自定义排序的实现

    Lucene中的自定义排序功能和... SortComparatorSource接口的功能是返回一个用来排序ScoreDocs的comparator(Expert: returns a comparator for sorting ScoreDocs).该接口只定义了一个方法.如下: Java代码 /** * Crea

    CSC212Sorting:排序(但主要是MergeSort)

    尽管我们在课堂上讨论了Comparable和Comparator,但此处的排序算法仅需要对ListADT&lt;Integer&gt; ,就像提供的bubbleSort一样。没有提供签名。您将必须决定排序算法是修改列表(在BubbleSort中很容易)还是返回新列表...

    java集合类演示源码

    实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户使用,Java平台还提供了Collections和Arrays工具类。collection.rar分别对上述内容进行详细讲解演示。

    java常用工具类的使用

    比如对一个数组进行排序,程序员可以写如下排序算法: 代码演示:数组排序 public static void sort(int[] arrs) { boolean isSwap = false; for (int i = 0; i ; i++) { isSwap = false; for (int j = arrs....

    11集合.rarjava 集合类

    2.Collection.srot(List arg0,Comparator arg1); 这种加入了比较器,具有更大的灵活性,便于管理,比较器可作为内部静态类的,以便于管理。比较器必须实现Comparator接口,具体可参照下列代码:

    习----题-Java-Web程序设计教程-[共2页].pdf

    在 Java EE 中对数据 进行存储时都可以考虑集合。但要依据存储要求不同(如读优先还是写优先)选择适合的集合类 型。此外,本章还介绍了 Java 泛型编程。限于篇幅,我们没有详细研究泛型编程技术。如果要深 入了解...

    ireport line chart 如何根據資料決定資料的標籤顯示位置 而不會重疊到1

    根據以上各條線的資料建立一個VO內含兩個屬性 第幾條線數值放入list中 使用Comparator去排序假設我有資料如下因此我會建立list如下排

    策略模式的实现源代码实例

    sort(List&lt;T&gt; list, Comparator&lt;? super T&gt; c) 其中Comparator是比较算子。通过实现Comparator接口可以定义满足个各种需要的排序方式。 这个例子是通过一个Student的ArrayList,然后分别输出按照学生姓名字典排序...

    Java基础知识点.html

    哈希值 LinkedHashSet TreeSet 自然排序Comparable 比较器排序Comparator Set集合 并发修改异常 LinkedList集合 ArrayList集合 List集合 Collection集合概述 冒泡排序 Object 异常 Math 包装类 Calendar类 ...

    java_spi_demo

    我们可以根据自己的排序规则写一个类,实现此接口,传入此方法,那么这个方法就会根据我们的规则对list进行排序。 把这个思想扩展开来,我们用SPI来重新实现上面的例子。客户把自己的排序规则写成一个

    sorted-list:SortedList 是索引的 SortedSet

    排序列表 SortedList 是索引的 SortedSet。 用法 sc.ript.util.SortedList&lt; String&gt; list = new sc.ript.util.TreeList&lt;&gt; ( new java.util.Comparator&lt; String&gt; () { @Override public int compare ( String ...

Global site tag (gtag.js) - Google Analytics