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

Collections.sort方法使用

阅读更多
Collections.sort(List<T> list)使用:
list中的所有元素都必须实现 Comparable 接口
User.java
package sc.zdd.test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class User{
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;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}

public User(String name, int age) {

this.name = name;
this.age = age;
}

public User() {

}
@Override
public String toString() {
return "User [age=" + age + ", name=" + name + "]";
}
public int compareTo(User o) {
//TODO Auto-generated method stub
//int result = name.compareTo(o.getName());
//if(result==0){
// result = age -o.getAge();
//}
//System.out.println(result);
//return result;
return this.hashCode()-o.hashCode();
}

public static void main(String[] args){
List<User> list = new ArrayList<User>();
list.add(new User("aa",10));
list.add(new User("aa",20));
list.add(new User("bb",10));
list.add(new User("bb",20));
list.add(new User("aa",1000));
list.add(new User("aa",5000));
for(User u1:list){
System.out.println(u1);
}
Collections.sort(list);
System.out.println("----------排序后------------");
for(User u1:list){
System.out.println(u1);
}

}

}
在这里的User类实现了Comparable 接口,并重写了hashCode() 和equalse()方法,这点是毕要的.

Collections.sort(List<T> list,Comparator<? super T> c)使用

UserComparator.java

package sc.zdd.test;

import java.util.Comparator;

public class UserComparator  implements Comparator<User>{

@Override
public int compare(User o1, User o2) {
// TODO Auto-generated method stub
return o1.hashCode()-o2.hashCode();
}

}

Test.java
package sc.zdd.test;

package sc.zdd.test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Test{

public static void main(String[] args){
List<User> list = new ArrayList<User>();
list.add(new User("aa",10));
list.add(new User("aa",20));
list.add(new User("bb",10));
list.add(new User("bb",20));
list.add(new User("aa",1000));
list.add(new User("aa",5000));
for(User u1:list){
System.out.println(u1);
}
Collections.sort(list,new UserComparator());
System.out.println("----------------------");
for(User u1:list){
System.out.println(u1);
}

}

}
分享到:
评论

相关推荐

    java List 排序 Collections.sort

    当我们需要对List中的元素进行排序时,`Collections.sort()`方法就派上了用场。这个方法能够根据元素的自然顺序或者自定义的比较器进行排序。本文将深入探讨`Collections.sort()`的使用、原理以及如何自定义排序规则...

    java中Collections.sort排序详解

    然后,使用Collections.sort()方法对列表进行排序,使用PriceComparator比较器来比较书籍的价格。 结论: 本文详细介绍了Java中的Collections.sort排序机制,包括Comparator接口的使用和实现机制。通过示例代码,...

    Java Arrays.sort和Collections.sort排序实现原理解析

    首先,`Collections.sort()`方法在处理列表(List)时,实际上底层调用了`list.sort()`方法。在Java中,`List`是一个接口,具体的实现类如`ArrayList`或`LinkedList`会提供具体的排序实现。在本例中,由于使用了`...

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

    Java Collections.sort()是Java语言中用于对List进行排序的方法,通过使用这个方法可以对List进行默认排序,也可以根据需要实现自定义的排序规则。 默认排序方法 在Java中,Collections.sort()方法可以对List进行...

    详解Java中Collections.sort排序

    `Collections.sort()`方法会使用`Comparator`的`compare()`方法来比较列表中的每一对元素,并根据比较结果进行排序。`compare()`方法应该遵循以下规则: 1. 如果`o1`应该出现在`o2`之前,返回负整数。 2. 如果`o1`和...

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

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

    详解java Collections.sort的两种用法

    在上面的代码中,我们首先创建了一个 Integer 类型的 List,然后使用 Collections.sort 方法对其进行排序。排序后的结果是默认的正序排序。 自定义类的排序 在实际应用中,我们经常需要对自定义类进行排序。...

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

    本文将深入探讨两种使用Collections.sort方法对List排序的方法。 首先,第一种方法是让List中的对象实现Comparable接口。Comparable接口定义了一个自然排序的规则,使得实现了该接口的类的对象可以进行比较并排序。...

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

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

    Java Collections.sort()排序代码案例

    接着,我们使用 Collections.sort() 方法对列表进行排序。最后,我们输出排序后的结果。 ```java package CollectionDemo; import java.util.ArrayList; import java.util.Collections; import java.util.List; ...

    金陵科技学院软件院大二上Java高级1215Collections.docx

    在这个文档中,我们主要关注`Collections`类中的一些核心方法的使用,包括`reverse()`, `sort()`, `shuffle()`, `swap()`, `replaceAll()`, `max()`, `min()`以及`frequency()`。 1. **`Collections.reverse(List...

    listview按序排列显示

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

    java.Collections.md

    首先,Java Collections类的sort方法可以用来对List集合进行排序。在使用sort方法之前,我们需要创建一个List对象,并添加需要排序的元素。例如,创建一个包含整数的ArrayList,并添加一些数字。在调用Collections....

    java-GenericSort-源码.rar

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

    Collections

    Collections Collections 是 Java 中的一个集合工具类,提供了多种操作集合的...这个示例代码展示了如何使用 Collections 中的部分方法,包括反转列表、随机排序、互换元素、排序、二分查找、查找最大和最小元素等。

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

    本文将详细介绍`Collections.sort()`方法的两种使用方式及其示例。 ### 一、Collections.sort()方法的两种形式 #### 1. 基于Comparable接口的排序 格式: ```java public static ...

    Java Collections.pdf

    例如,Collections.sort()方法可以对List进行排序,而Collections.synchronizedXXX()方法则可以帮助我们创建线程安全的集合。 在实际开发中,选择合适的集合类型和方法至关重要。例如,当我们需要保持元素插入顺序...

    C# System.Collections 非泛型接口方法解析.pdf

    在C#编程中,System.Collections命名空间包含了许多非泛型集合接口,这些接口是.NET框架早期版本的基础,尽管现在泛型集合接口(如`IEnumerable&lt;T&gt;`)更为常用,但理解非泛型接口对于维护旧代码或处理特定场景仍然很...

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

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

    java日期排序.docx

    其中,使用 Collections.sort 方法是其中的一种常见方法。Collections.sort 方法可以对 List 对象中的元素进行排序,包括日期字符串。 示例代码 下面是一个使用 Java 进行日期排序的示例代码: import java.util....

Global site tag (gtag.js) - Google Analytics