`

List排序 Collections.sort 实现Comparable接口

    博客分类:
  • java
 
阅读更多

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

 

 

分享到:
评论

相关推荐

    java List 排序 Collections.sort

    首先,`Collections.sort()`的基本用法是针对实现了`Comparable`接口的类的实例。例如,我们有一个`Person`类,它包含了姓名和年龄属性,我们可以让它实现`Comparable`接口,比较规则为按照年龄从小到大排序: ```...

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

    在使用Collections.sort()方法时,需要注意的是,元素的类型必须实现Comparable接口,并且重写compareTo()方法,以便对元素进行比较排序。如果元素类型没有实现Comparable接口,将抛出ClassCastException异常。 ...

    JAVA对list集合进行排序Collections.sort()

    在Java编程语言中,`Collections.sort()` 方法是一个非常重要的工具,用于对List接口实现的集合进行排序。这个方法使得开发者能够方便地按照指定的顺序排列集合中的元素。本篇文章将详细探讨如何使用 `Collections....

    java中Collections.sort排序详解

    Java中Collections.sort排序详解 Java中的Collections.sort排序是Java.util....通过示例代码,展示了如何使用Collections.sort()方法对列表进行排序,并定义了一个Comparator接口的实现类来比较书籍的价格。

    java中Collections.sort排序函数用法详解

    如果列表中的元素实现了 `Comparable` 接口,那么 `Collections.sort()` 会使用元素的自然顺序进行排序。例如,如果你有一个包含整数的列表,它们会按照从小到大的顺序排序。对于自定义类,需要重写 `Comparable` ...

    用Java集合中的Collections.sort方法如何对list排序(两种方法)

    在Java编程中,集合框架是处理数据的重要工具,而Collections.sort方法则是对列表(List)进行排序的关键函数。本文将深入探讨两种使用Collections.sort方法对List排序的方法。 首先,第一种方法是让List中的对象实现...

    详解Java中Collections.sort排序

    当传入的列表元素实现了`Comparable`接口时,`Collections.sort()`会按照这些元素的`compareTo()`方法来决定它们之间的顺序。例如,在提供的代码中,`Book`类实现了`Comparable`接口,并重写了`compareTo()`方法,...

    详解java Collections.sort的两种用法

    Collections.sort 方法的第二个参数形式是 public static &lt;T&gt; void sort(List&lt;T&gt; list, Comparator&lt;? super T&gt; c),该方法允许我们通过实现 Comparator 接口的 compare 方法来完成自定义排序。 下面是一个使用...

    listview按序排列显示

    在这个场景下,我们使用`Collections.sort()`函数对一个包含Map对象的List进行排序,然后将排序后的数据适配到ListView中。以下是关于这个主题的详细解释。 **一、Map与List的关系** 在Java中,Map是一种键值对的...

    java 使用Collections类对List的排序操作

    1. **自然排序**:如果 `List` 中的元素是实现了 `Comparable` 接口的对象,那么可以使用 `Collections.sort()` 方法进行自然排序。`Comparable` 接口定义了一个 `compareTo()` 方法,该方法用于比较对象之间的大小...

    JAVA中Collections工具类sort()排序方法

    例如,`String`和`Integer`类都实现了`Comparable`接口,可以直接使用`Collections.sort()`进行排序。如果自定义类想要参与排序,也需要实现`Comparable`接口,并重写`compareTo()`方法来定义比较规则。 #### 2. ...

    java 实现Comparable接口排序,升序、降序、倒叙

    在 Java 中,实现 Comparable 接口的类可以使用 Arrays.sort() 或 Collections.sort() 方法对对象列表进行排序。 在本文中,我们将详细介绍如何使用 Comparable 接口对 Java 对象进行排序,包括升序、降序和倒叙...

    关于list的排序

    `Collections.sort()`方法可以对任何实现了`List`接口的对象进行排序,它默认使用元素的自然顺序(即元素所属类必须实现`Comparable`接口)。 首先,让我们了解一下`Collections.sort()`的基本用法。假设我们有一个...

    Collections集合工具类排序.docx

    总的来说,Collections工具类的`sort()`方法是Java集合排序的核心,结合Comparable接口和Comparator接口,可以满足各种复杂排序需求。无论是基本类型还是自定义类型,都能通过合理的比较策略实现有效的排序。在实际...

    java集合某个字段按照中文拼音排序.docx

    在Java中,我们可以使用Comparable接口来实现自定义排序。例如,我们可以创建一个Record类,实现Comparable接口,并重写compareTo方法。在compareTo方法中,我们可以使用String的compareTo方法来比较两个字符串的...

    arrayList排序

    首先,ArrayList本身并不提供直接的排序功能,但我们可以借助Java提供的`Collections.sort()`方法来实现排序。`Collections.sort()`是一个通用的方法,可以对List接口的实现类进行排序。在使用这个方法前,确保...

    Java 对象排序详解.rar_java 对象排序_对象_排序

    要对自定义对象进行排序,你需要确保你的类实现了Comparable接口或者提供一个Comparator对象来定义比较规则。 ```java public class MyObject implements Comparable&lt;MyObject&gt; { int value; public int ...

    java版本List中对象多属性排序.rar

    1. **Collections.sort()**:这是最常用的方法,适用于`List`接口的实现类,如`ArrayList`和`LinkedList`。这个方法接受一个`List`和一个`Comparator`作为参数。`Comparator`是一个接口,定义了比较两个对象并返回...

    java-GenericSort-源码.rar

    对于集合,Collections.sort方法使用了泛型,可以对任何实现了Comparable接口的对象列表进行排序;对于数组,Arrays.sort方法同样支持泛型,可以对任何实现了Comparable接口的数组进行排序。 3. **Comparable接口**...

    java 按对象属性排序

    综上所述,Java提供多种方式来根据对象属性进行排序,包括实现`Comparable`接口,使用`Collections.sort()`方法,以及创建自定义的`Comparator`。在实际开发中,应根据具体需求选择合适的方法。通过理解这些概念,...

Global site tag (gtag.js) - Google Analytics