import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Person> persons=new ArrayList<Person>();
initList(persons);
show(persons);
Collections.sort(persons);
show(persons);
}
static void initList(List persons){
Person p=new Person();
p.setAge(1);
p.setName("baby");
persons.add(p);
p=new Person();
p.setAge(11);
p.setName("kid");
persons.add(p);
p=new Person();
p.setAge(51);
p.setName("gather");
persons.add(p);
p=new Person();
p.setAge(21);
p.setName("father");
persons.add(p);
}
static void show(List persons){
Person p=null;
for(int i=0;i<persons.size();i++){
p=(Person)persons.get(i);
System.out.println("name = "+ p.getName()+ ", age="+p.getAge());//按插入的顺序
}
}
}
package list;
public class Person implements Comparable {
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 compareTo(Object o) {
if(!(o instanceof Person)){
return -1;
}
Person p=(Person)o;
if(this.age==p.getAge()){
return 0;
}
else if(this.age>p.getAge()){
return 1;
}
else{
return -1;
}
}
}
使用工具类Collections实现List的排序,其中的对象必须实现Comparable接口
Person pp=null;
Iterator it=persons.iterator();
while(it.hasNext()){
pp=(Person)it.next();
System.out.println(pp.getName());
}
Person p1=new Person();
p1.setName("kid22");
p1.setAge(11);
int i=Collections.binarySearch((List)persons, p1); //依赖Comparable接口
System.out.println("i="+i);
Collections.reverse(persons); //反序
persons=Collections.emptyList(); // 清空list
Person p=Collections.max(persons);
p=Collections.min(persons);
Collections.shuffle(persons);// 混洗
persons=Collections.synchronizedList(persons);
相关推荐
首先,`Collections.sort()`的基本用法是针对实现了`Comparable`接口的类的实例。例如,我们有一个`Person`类,它包含了姓名和年龄属性,我们可以让它实现`Comparable`接口,比较规则为按照年龄从小到大排序: ```...
在使用Collections.sort()方法时,需要注意的是,元素的类型必须实现Comparable接口,并且重写compareTo()方法,以便对元素进行比较排序。如果元素类型没有实现Comparable接口,将抛出ClassCastException异常。 ...
在Java编程语言中,`Collections.sort()` 方法是一个非常重要的工具,用于对List接口实现的集合进行排序。这个方法使得开发者能够方便地按照指定的顺序排列集合中的元素。本篇文章将详细探讨如何使用 `Collections....
Java中Collections.sort排序详解 Java中的Collections.sort排序是Java.util....通过示例代码,展示了如何使用Collections.sort()方法对列表进行排序,并定义了一个Comparator接口的实现类来比较书籍的价格。
如果列表中的元素实现了 `Comparable` 接口,那么 `Collections.sort()` 会使用元素的自然顺序进行排序。例如,如果你有一个包含整数的列表,它们会按照从小到大的顺序排序。对于自定义类,需要重写 `Comparable` ...
在Java编程中,集合框架是处理数据的重要工具,而Collections.sort方法则是对列表(List)进行排序的关键函数。本文将深入探讨两种使用Collections.sort方法对List排序的方法。 首先,第一种方法是让List中的对象实现...
当传入的列表元素实现了`Comparable`接口时,`Collections.sort()`会按照这些元素的`compareTo()`方法来决定它们之间的顺序。例如,在提供的代码中,`Book`类实现了`Comparable`接口,并重写了`compareTo()`方法,...
Collections.sort 方法的第二个参数形式是 public static <T> void sort(List<T> list, Comparator<? super T> c),该方法允许我们通过实现 Comparator 接口的 compare 方法来完成自定义排序。 下面是一个使用...
在这个场景下,我们使用`Collections.sort()`函数对一个包含Map对象的List进行排序,然后将排序后的数据适配到ListView中。以下是关于这个主题的详细解释。 **一、Map与List的关系** 在Java中,Map是一种键值对的...
1. **自然排序**:如果 `List` 中的元素是实现了 `Comparable` 接口的对象,那么可以使用 `Collections.sort()` 方法进行自然排序。`Comparable` 接口定义了一个 `compareTo()` 方法,该方法用于比较对象之间的大小...
例如,`String`和`Integer`类都实现了`Comparable`接口,可以直接使用`Collections.sort()`进行排序。如果自定义类想要参与排序,也需要实现`Comparable`接口,并重写`compareTo()`方法来定义比较规则。 #### 2. ...
在 Java 中,实现 Comparable 接口的类可以使用 Arrays.sort() 或 Collections.sort() 方法对对象列表进行排序。 在本文中,我们将详细介绍如何使用 Comparable 接口对 Java 对象进行排序,包括升序、降序和倒叙...
`Collections.sort()`方法可以对任何实现了`List`接口的对象进行排序,它默认使用元素的自然顺序(即元素所属类必须实现`Comparable`接口)。 首先,让我们了解一下`Collections.sort()`的基本用法。假设我们有一个...
总的来说,Collections工具类的`sort()`方法是Java集合排序的核心,结合Comparable接口和Comparator接口,可以满足各种复杂排序需求。无论是基本类型还是自定义类型,都能通过合理的比较策略实现有效的排序。在实际...
在Java中,我们可以使用Comparable接口来实现自定义排序。例如,我们可以创建一个Record类,实现Comparable接口,并重写compareTo方法。在compareTo方法中,我们可以使用String的compareTo方法来比较两个字符串的...
首先,ArrayList本身并不提供直接的排序功能,但我们可以借助Java提供的`Collections.sort()`方法来实现排序。`Collections.sort()`是一个通用的方法,可以对List接口的实现类进行排序。在使用这个方法前,确保...
要对自定义对象进行排序,你需要确保你的类实现了Comparable接口或者提供一个Comparator对象来定义比较规则。 ```java public class MyObject implements Comparable<MyObject> { int value; public int ...
1. **Collections.sort()**:这是最常用的方法,适用于`List`接口的实现类,如`ArrayList`和`LinkedList`。这个方法接受一个`List`和一个`Comparator`作为参数。`Comparator`是一个接口,定义了比较两个对象并返回...
对于集合,Collections.sort方法使用了泛型,可以对任何实现了Comparable接口的对象列表进行排序;对于数组,Arrays.sort方法同样支持泛型,可以对任何实现了Comparable接口的数组进行排序。 3. **Comparable接口**...
综上所述,Java提供多种方式来根据对象属性进行排序,包括实现`Comparable`接口,使用`Collections.sort()`方法,以及创建自定义的`Comparator`。在实际开发中,应根据具体需求选择合适的方法。通过理解这些概念,...