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或数组对根据属性排序一个list或数组
要注意的是List,Set,Queue继承了Collection接口,...这里想用一个简单的例子展示一下他们的使用,内容包括:List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类,泛型、重写equals、hashCode
本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法。分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们...Comparator<Object> com = Collator.getInstance(java.util.Locale
1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的, ... 这时肯定有人要问, 那为什么可以排序一个字符串list呢: 如 StringList{hello1 , h
数组有工具类Arrays,集合也有一个工具类Collections,这里练习一下集合工具类的排序方法,顺便过一下sort排序...sort(List<T> list, Comparator<? super T> c):根据指定的比较器引起的顺序对指定的列表进行排序。
它是使用Comparator对象构造的,该对象可以将两个对象进行比较,从而使SortedList可以将其元素按升序或降序排序。 当且仅当要使用的对象实现Comparable接口时,我们也可以创建不带Comparator对象的SortedList。 用法...
通过对这两个类的熟悉,能够将List、Set和Map三大类的基本用法掌握。另外它的几个辅助类要掌握:Iterator和Collections。Collections类 提供容器的一些通用工具,比如排序。而说到排序,就牵扯出了比较器:...
TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。 HashMap的值是没有顺序的,它是按照...
Lucene中的自定义排序功能和... SortComparatorSource接口的功能是返回一个用来排序ScoreDocs的comparator(Expert: returns a comparator for sorting ScoreDocs).该接口只定义了一个方法.如下: Java代码 /** * Crea
尽管我们在课堂上讨论了Comparable和Comparator,但此处的排序算法仅需要对ListADT<Integer> ,就像提供的bubbleSort一样。没有提供签名。您将必须决定排序算法是修改列表(在BubbleSort中很容易)还是返回新列表...
实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户使用,Java平台还提供了Collections和Arrays工具类。collection.rar分别对上述内容进行详细讲解演示。
比如对一个数组进行排序,程序员可以写如下排序算法: 代码演示:数组排序 public static void sort(int[] arrs) { boolean isSwap = false; for (int i = 0; i ; i++) { isSwap = false; for (int j = arrs....
2.Collection.srot(List arg0,Comparator arg1); 这种加入了比较器,具有更大的灵活性,便于管理,比较器可作为内部静态类的,以便于管理。比较器必须实现Comparator接口,具体可参照下列代码:
在 Java EE 中对数据 进行存储时都可以考虑集合。但要依据存储要求不同(如读优先还是写优先)选择适合的集合类 型。此外,本章还介绍了 Java 泛型编程。限于篇幅,我们没有详细研究泛型编程技术。如果要深 入了解...
根據以上各條線的資料建立一個VO內含兩個屬性 第幾條線數值放入list中 使用Comparator去排序假設我有資料如下因此我會建立list如下排
sort(List<T> list, Comparator<? super T> c) 其中Comparator是比较算子。通过实现Comparator接口可以定义满足个各种需要的排序方式。 这个例子是通过一个Student的ArrayList,然后分别输出按照学生姓名字典排序...
哈希值 LinkedHashSet TreeSet 自然排序Comparable 比较器排序Comparator Set集合 并发修改异常 LinkedList集合 ArrayList集合 List集合 Collection集合概述 冒泡排序 Object 异常 Math 包装类 Calendar类 ...
我们可以根据自己的排序规则写一个类,实现此接口,传入此方法,那么这个方法就会根据我们的规则对list进行排序。 把这个思想扩展开来,我们用SPI来重新实现上面的例子。客户把自己的排序规则写成一个
排序列表 SortedList 是索引的 SortedSet。 用法 sc.ript.util.SortedList< String> list = new sc.ript.util.TreeList<> ( new java.util.Comparator< String> () { @Override public int compare ( String ...