使用方式一我们必须在Student类上面进行修改,这显然不是最好的办法,如果我们不想按年龄排序,想要按照姓名排序,或者我们有一个方法需要按照年龄,另一个方法需要按照姓名,那么重写compareTo方法显然就没法完成我们的目标了,Collections的重载sort方法可以允许我们在排序对象外部自定义一个比较器(Comparator接口的实现类),因为...
list.add(new Integer(10)); // 简单的int类似数据,可以使用Collections的sort方法即可完成排序 Collections.sort(list); System.out.println(list.toString()); } } 输出结果为: [3,6,10,14] 这种简单的排序会直接按自然数据输出。 2、方案二 2.1、参数相对复杂的排序方式,参数为对象的情况 import java.uti...
List<UserInfo> list = new ArrayList<UserInfo>(); SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd"); list.add(new UserInfo(3,"b",formater.parse("1980-12-01"),11)); list.add(new UserInfo(1,"c",formater.parse("1980-10-01"),30)); list.add(new UserInfo(2,"a",for...
在Java中,有一个List<对象>,并且想要根据对象中某个字段进行排序,可以使用Collections.sort()方法结合自定义的Comparator。这里是一个简单的例子,假设有一个Person类,它有两个字段:name和age,想要根据age字段对Person对象的列表进行排序。 首先,定义Person类: java public class Person { private String name; private...
我们可以使用Comparator接口来进行自定义排序。Comparator接口是Java中的比较器接口,可以对对象进行比较和排序。下面是使用Comparator接口进行年龄排序的代码示例: List<Person> people = new ArrayList<>(); people.add(new Person("John", 30)); people.add(new Person("Alice", 25)); people.add(new Person("...
可以看到,通过使用Collections类的sort方法和reverse方法,我们成功地对List进行了降序排序。 3. List排序的底层实现原理 List排序的底层实现原理是基于比较器(Comparator)或元素的自然顺序(Comparable)。Comparator接口定义了比较两个对象的规则,它有一个compare方法,用于比较两个元素的大小。而Comparable接口定义了元素自己的...
1.对于最简单的情况,就是要被排序的类实现一个Comparable接口,然后实现compare方法,按照自然的方式进行减运算,返回减运算的结果,然后直接使用Collections.sort(List list)方法就行了。这一种叫做自然排序,只适合原始的List和Set。 2.如果你不想使用自然排序,没问题,那么就定义一个Comparator对象,将逻辑在那里面去实现...
如果要颠倒排序顺序,可以简单地使用sort(List<T> list, Comparator<? super T> c) 。参数是Collections.reverseOrder()方法。此方法返回一个Comparator,它对实现Comparable接口的对象集合使用自然顺序的相反顺序。由于House类实现了Comparable接口,因此我们可以使用此方法自动颠倒顺序。importjava.util.Collections;import...
java对象List集合的排序(基本类型相似); 方法一:使用for循环的方式来进行对象List集合的排序; 方法二:使用内部比较器(被比较的对象实现comparable<T>接口,并重写compareTo()方法); 方法三:使用外部比较器(使用Collections.sort(要排序的list,外部比较器)或者Arrays.sort(要排序的数组,外部比较器)方法); ...