arraylist按类排序代码生成
时间: 2023-07-21 17:42:49 浏览: 44
以下是一个示例代码,可以按照类对 ArrayList 进行排序:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
ArrayList<Person> people = new ArrayList<Person>();
people.add(new Person("John", 25));
people.add(new Person("Jane", 30));
people.add(new Person("Mary", 20));
Collections.sort(people, new Comparator<Person>() {
public int compare(Person p1, Person p2) {
return p1.getAge() - p2.getAge();
}
});
for (Person person : people) {
System.out.println(person.getName() + " (" + person.getAge() + ")");
}
}
}
class 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;
}
}
```
在这个示例代码中,我们创建了一个 `Person` 类,它有一个 `name` 和 `age` 属性。我们创建了一个 `ArrayList`,并向其中添加了一些 `Person` 对象。
我们使用 `Collections.sort()` 方法对 `ArrayList` 进行排序。我们传递了一个 `Comparator` 对象,该对象定义了如何比较两个 `Person` 对象。在这个例子中,我们按照 `age` 属性进行比较。如果 `p1.getAge() - p2.getAge()` 返回负数,则 `p1` 小于 `p2`,如果返回正数,则 `p1` 大于 `p2`,如果返回零,则 `p1` 等于 `p2`。
最后,我们遍历排序后的 `ArrayList`,并输出每个 `Person` 对象的 `name` 和 `age` 属性。