/**
* @author guwh
* @version 创建时间:2011-11-3 上午10:49:36
* 类说明
*/
package com.jabberchina.test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortTest {
public static void main(String[] args) {
List<String> lists = new ArrayList<String>();
List<A> list = new ArrayList<A>();
List<B> listB = new ArrayList<B>();
lists.add("5");
lists.add("2");
lists.add("9");
//lists中的对象String 本身含有compareTo方法,所以可以直接调用sort方法,按自然顺序排序,即升序排序
Collections.sort(lists);
A aa = new A();
aa.setName("aa");
aa.setOrder(1);
A bb = new A();
bb.setName("bb");
bb.setOrder(2);
list.add(bb);
list.add(aa);
//list中的对象A实现Comparable接口
Collections.sort(list);
B ab = new B();
ab.setName("ab");
ab.setOrder("1");
B ba = new B();
ba.setName("ba");
ba.setOrder("2");
listB.add(ba);
listB.add(ab);
//根据Collections.sort重载方法来实现
Collections.sort(listB,new Comparator<B>(){
@Override
public int compare(B b1, B b2) {
return b1.getOrder().compareTo(b2.getOrder());
}
});
System.out.println(lists);
System.out.println(list);
System.out.println(listB);
}
}
class A implements Comparable<A>{
private String name;
private Integer order;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getOrder() {
return order;
}
public void setOrder(Integer order) {
this.order = order;
}
@Override
public String toString() {
return "name is "+name+" order is "+order;
}
@Override
public int compareTo(A a) {
return this.order.compareTo(a.getOrder());
}
}
class B{
private String name;
private String order;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getOrder() {
return order;
}
public void setOrder(String order) {
this.order = order;
}
@Override
public String toString() {
return "name is "+name+" order is "+order;
}
}
打印的结果为:
[2, 5, 9]
[name is aa order is 1, name is bb order is 2]
[name is ab order is 1, name is ba order is 2]
分享到:
相关推荐
在`Collections.sort()`内部,使用了一种称为“快速排序”的高效排序算法。快速排序是一种分治策略,通过选择一个基准值,将数组分为两部分,左边的元素都小于基准,右边的元素都大于基准,然后再对左右两部分递归地...
Java Collections.sort 的两种用法详解 ...Java Collections.sort 方法提供了两种用法,分别是对基本类型和自定义类的排序。通过实现 Comparator 接口的 compare 方法,我们可以完成自定义排序规则。
Java中的`Arrays.sort()`和`Collections.sort()`是两个常用的排序函数,它们分别用于对数组和集合进行排序。这两个函数在内部实现上有所不同,但都基于高效的排序算法。 首先,`Collections.sort()`方法在处理列表...
`Collections.sort()`有两种主要的排序方式:一种是基于元素的自然顺序,另一种是通过自定义比较器`Comparator`。 首先,我们来详细讲解`Collections.sort()`的默认排序机制。当传入的列表元素实现了`Comparable`...
本文将深入探讨两种使用Collections.sort方法对List排序的方法。 首先,第一种方法是让List中的对象实现Comparable接口。Comparable接口定义了一个自然排序的规则,使得实现了该接口的类的对象可以进行比较并排序。...
在这个场景下,我们使用`Collections.sort()`函数对一个包含Map对象的List进行排序,然后将排序后的数据适配到ListView中。以下是关于这个主题的详细解释。 **一、Map与List的关系** 在Java中,Map是一种键值对的...
本文将详细介绍`Collections.sort()`方法的两种使用方式及其示例。 ### 一、Collections.sort()方法的两种形式 #### 1. 基于Comparable接口的排序 格式: ```java public static ...
1. **自然排序**:如果 `List` 中的元素是实现了 `Comparable` 接口的对象,那么可以使用 `Collections.sort()` 方法进行自然排序。`Comparable` 接口定义了一个 `compareTo()` 方法,该方法用于比较对象之间的大小...
- **合并特征集合**:使用 `featureCollection.union` 或 `featureCollection.merge` 来合并两个或多个 Feature Collections。 - **Join 操作**:使用 `Join.apply` 将两个 Feature Collections 进行连接。 - **重置...
《Java Generics and Collections》是Java开发者必备的参考资料,它深入探讨了Java编程中的泛型(Generics)和集合(Collections)这两个核心概念。在Java编程中,泛型和集合框架是提高代码效率、可读性和类型安全性...
然而,Collections.sort()的实现并非严格意义上的模板模式,因为它使用了回调机制,即Comparator接口,而不是继承一个基类并重写模板方法。这种实现方式更接近于策略模式,因为Comparator可以看作是排序策略的封装,...
在示例代码中,我们看到如何使用Collections.sort()方法对一个包含Double对象的ArrayList进行排序。这里的关键在于,如果元素实现了Comparable接口(如User类),那么sort()方法可以直接比较并排序这些元素。...
Java Collections API 是Java编程语言中不可或缺的一部分,它提供了丰富的接口和类来操作各种集合,如List、Set、...例如,代码可能包含了如何使用这些方法和特性的实例,进一步加深我们对Java Collections API的理解。
本文将详细介绍如何使用Java对字符串数组按照单词的首字母进行排序的两种方法,并通过代码示例加以说明,帮助读者深入理解并掌握这些技巧。 ### 方法一:使用`Arrays.sort()`方法 在Java中,`java.util.Arrays`类...
`Collections.sort()` 方法也有两种使用方式: 1. **直接调用 `Collections.sort(List<T> list)`**:当你列表中的元素实现 `Comparable<T>` 接口时,可以直接调用这个方法。例如,对于一个 `ArrayList<Student>`,...
在Java中,集合主要分为两种类型:List和Set。List接口(如ArrayList和LinkedList)保持元素的顺序,并允许重复元素;Set接口(如HashSet和TreeSet)不允许重复元素,不保证元素的顺序。对于List接口,我们经常需要...
理解这两个接口的用法,并熟练掌握`Collections.sort()`和`Arrays.sort()`的使用,是成为熟练Java开发者的必备技能。在实际编程中,灵活运用这些知识可以解决各种排序需求,提高代码的可读性和可维护性。
`Collections.sort()` 是 Java 中一种快速且高效地对集合(如 ArrayList)进行排序的方法。可以自定义比较器来指定排序规则。 **示例代码分析**: ```java public class Main { public static void main(String[] ...
自定义排序可以通过两种方式实现: - 实现`Comparable`接口:这种方式要求被排序的类自身实现比较逻辑。 - 提供`Comparator`对象:这种方式更为灵活,可以在不修改类自身的情况下提供不同的排序规则。 #### 五、...
本篇将详细讲解如何使用`ListView`显示按时间排序的数据,并通过`Adapter`和`Collections.sort`方法处理Map中的数据。 首先,我们要理解`ListView`的工作原理。`ListView`是一个可以滚动的视图,它通过复用已创建的...