📅  最后修改于: 2023-12-03 15:24:32.077000             🧑  作者: Mango
在Java中,我们可以使用TreeSet对自定义类对象的LinkedHashSet进行排序。TreeSet是一个有序的集合,它可以自动对集合中的元素进行排序。而LinkedHashSet是一个没有顺序的集合,它可以保持插入顺序。
要使用TreeSet对LinkedHashSet进行排序,我们需要遵循以下几个步骤:
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;
}
}
在上面的例子中,我们定义了一个Person类,并实现了Comparable接口。我们通过重写compareTo方法来比较两个Person对象的age属性。这里,我们通过age属性的大小来判断两个Person对象的大小关系。
LinkedHashSet<Person> personSet = new LinkedHashSet<>();
personSet.add(new Person("John", 30));
personSet.add(new Person("Mary", 25));
personSet.add(new Person("Peter", 35));
personSet.add(new Person("David", 20));
在这个例子中,我们创建了一个LinkedHashSet,并添加了四个Person对象。这些Person对象是按照插入顺序添加到集合中的。
TreeSet<Person> personTreeSet = new TreeSet<>();
personTreeSet.addAll(personSet);
在这个例子中,我们创建了一个TreeSet,并使用addAll方法将personSet中的元素添加到personTreeSet中。这里,TreeSet会自动根据我们在Person类中定义的compareTo方法来对集合中的元素进行排序。
for (Person person : personTreeSet) {
System.out.println(person.getName() + " " + person.getAge());
}
在这个例子中,我们遍历personTreeSet,并输出每个Person对象的name和age属性。由于personTreeSet是已经排序的,我们可以看到输出的结果已经按照我们在compareTo方法中定义的顺序进行了排序。
以上就是使用TreeSet对自定义类对象的LinkedHashSet进行排序的方法。我们只需要定义一个自定义类实现Comparable接口,并重写compareTo方法,在创建TreeSet时,集合会自动进行排序。