对java list里的元素互相比较大小
时间: 2023-09-10 12:15:48 浏览: 184
Java中的List是一种有序的集合,它允许我们存储多个元素,这些元素可以是相同类型或不同类型的对象。如果我们想要对List中的元素进行排序,就需要比较它们的大小。下面是对Java List元素进行比较大小的方法:
1. 使用Comparable 接口:Comparable是一个接口,它定义了一个compareTo方法,该方法用于定义对象之间的自然排序。如果我们的List中的元素实现了Comparable接口,那么我们就可以使用Collections.sort方法将它们进行排序。例如:
```
public class Person implements Comparable<Person> {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public int compareTo(Person o) {
return this.age - o.age;
}
}
List<Person> personList = new ArrayList<>();
personList.add(new Person("Tom", 20));
personList.add(new Person("Mary", 18));
Collections.sort(personList); //按照年龄排序
```
2. 使用Comparator 接口:如果我们无法修改List中元素的代码,或者需要按照不同的比较方式进行排序,就可以使用Comparator接口。Comparator是一个接口,它定义了一个compare方法,该方法用于定义两个对象之间的比较方式。例如:
```
List<Person> personList = new ArrayList<>();
personList.add(new Person("Tom", 20));
personList.add(new Person("Mary", 18));
Comparator<Person> byName = Comparator.comparing(Person::getName);
Collections.sort(personList, byName); //按照姓名排序
Comparator<Person> byAge = Comparator.comparing(Person::getAge);
Collections.sort(personList, byAge); //按照年龄排序
```
以上是两种常见的对Java List元素进行比较大小的方法。我们可以根据具体情况选择合适的方法。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)