import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class ComparableTest {
public static void main(String[] args) {
Comparator<Student> comparator = new Comparator<Student>(){
public int compare(Student s1, Student s2) {
//先排年龄
if(s1.age!=s2.age){
return s1.age-s2.age;
}
else{
//年龄相同则按姓名排序
if(!s1.name.equals(s2.name)){
return s1.name.compareTo(s2.name);
}
else{
//姓名也相同则按学号排序
return s1.id-s2.id;
}
}
}
};
Student stu1 = new Student (1,"zhangsan","male",28,"cs");
Student stu2 = new Student (2,"lisi","female",19,"cs");
Student stu3 = new Student (3,"wangwu","male",22,"cs");
Student stu4 = new Student (4,"zhaoliu","female",17,"cs");
Student stu5 = new Student (5,"jiaoming","male",22,"cs");
ArrayList<Student> List = new ArrayList<Student>();
List.add(stu1);
List.add(stu2);
List.add(stu3);
List.add(stu4);
List.add(stu5);
//这里就会自动根据规则进行排序
Collections.sort(List,comparator);
display(List);
}
static void display(ArrayList<Student> lst){
for(Student s:lst)
System.out.println(s);
}
}
class Student{
int age;
int id;
String gender;
String name;
String cs;
Student(int id,String name,String gender,int age,String cs){
this.age=age;
this.name=name;
this.gender=gender;
this.id=id;
this.cs=cs;
}
public String toString(){
return id+" "+name+" "+gender+" "+age+" "+cs;
}
}
分享到:
相关推荐
Java针对ArrayList自定义排序的2种实现方法 Java语言中提供了多种方式来实现ArrayList的自定义排序,今天我们将介绍其中的两种实现方法。首先,让我们了解一下ArrayList的基本概念。ArrayList是一种动态数组,能够...
如果需要自定义排序规则,可以在`sorted()`方法中传入Comparator。 ```java // 使用Java 8的流进行排序 ArrayList<User> sortedList = userList.stream() .sorted((u1, u2) -> u1.getName().compareTo(u2....
这个"Java排序算法包"提供了对多种排序算法的支持,并且允许用户根据自己的需求自定义比较条件,使得排序功能更加灵活。 1. **排序算法基础**: - 排序是指将一组数据按照特定的顺序进行排列的过程。常见的排序...
- `Collections.sort()` 方法默认按照自然顺序进行排序,如果需要自定义排序,则需要提供一个 `Comparator` 实例。 - 对于中文排序,需要注意 `Collator` 的使用,因为其内部实现考虑了中文的排序规则。 - 在实际...
然而,ArrayList本身并不提供排序功能,但我们可以借助Java的Collections类提供的sort()方法来实现排序。本文将通过三个示例详细讲解如何在Java中对ArrayList进行排序。 首先,我们来看一个简单的例子,创建一个名...
本文介绍的Java自定义加密算法通过随机生成不同类型的字符并结合随机排序和校验和机制,有效地提高了加密字符串的安全性。这种算法适用于一些需要简单加密处理的场合,但需要注意的是,对于高度敏感的数据,建议使用...
如果你想进行降序排序,一种方法是自定义比较器,另一种是在升序排序后再次反转ArrayList。描述中提到的“再反转Collections.reverse(list)”是Java的代码,对于C#,你可以这样实现: ```csharp // 再次反转,得到...
总结一下,这个示例展示了如何在Java中使用ArrayList,以及如何通过Comparator接口自定义排序规则。ArrayList是动态数组,提供便利的增删改查操作。`Collections.sort()`方法结合Comparator可以实现自定义排序,使得...
在Java编程语言中,特别是在算法竞赛的环境下,经常会遇到需要对数据进行自定义排序的情况。以下将详细讲解三种常见的自定义排序方式: 1. **对象数组排序**: Java不支持像C++那样的结构体,因此当需要处理具有多...
总结起来,`Collections.sort()`是Java中对List进行排序的标准工具,它支持自然排序和自定义排序。了解其工作原理和优化技巧,可以帮助我们在编程实践中更高效地处理数据。通过阅读和理解`Collections.sort()`的源码...
首先,Java集合框架包括接口(如List、Set、Map)和实现这些接口的类(如ArrayList、HashSet、HashMap)。这些类提供了基础的数据结构和方法,如添加元素、删除元素、查找元素等。然而,标准库中的集合可能并不完全...
ArrayList不支持直接排序,但是我们可以通过调用Collections.sort()方法或者自定义Comparator来实现。 `Collections.sort()`方法是Java集合框架提供的一个便捷工具,用于对List接口的实现类进行排序。如果ArrayList...
在Java中,我们可以使用Comparable接口来实现自定义排序。例如,我们可以创建一个Record类,实现Comparable接口,并重写compareTo方法。在compareTo方法中,我们可以使用String的compareTo方法来比较两个字符串的...
Java 提供了两种排序方法:自然排序和自定义排序。本文将详细介绍这两种排序方法,并通过示例代码进行示例。 自然排序 自然排序是指参与排序的对象需实现 `Comparable` 接口,并重写其 `compareTo()` 方法。在这个...
本文将深入探讨Java中的对象排序,包括基本概念、API使用以及自定义排序规则。 ### 1. Java对象排序基础 在Java中,我们可以对两种类型的元素进行排序:原始类型(如int、char)和对象。对于对象,排序主要涉及到`...
`Collections.sort()` 是 Java 中一种快速且高效地对集合(如 ArrayList)进行排序的方法。可以自定义比较器来指定排序规则。 **示例代码分析**: ```java public class Main { public static void main(String[] ...
接下来,我们可以创建一个ArrayList实例,填充`Student`对象,并使用`Collections.sort()`方法结合自定义的Comparator进行排序: ```java import java.util.ArrayList; import java.util.Collections; import java....
8. **可视化排序过程**:为了使用户能观察到排序过程,可以使用JList或者自定义组件动态更新数组的排序状态。 9. **Arrays类**:Java标准库中的Arrays类提供了多种操作数组的方法,包括排序,可以方便地对数组进行...