如何使用java的有序集合排序數(shù)據(jù)

小樊
81
2024-09-21 10:30:45

在Java中,您可以使用SortedSet接口或其實(shí)現(xiàn)類(lèi)TreeSet對(duì)數(shù)據(jù)進(jìn)行排序。以下是如何使用TreeSet對(duì)一個(gè)自定義數(shù)據(jù)進(jìn)行排序的示例:

  1. 首先,創(chuàng)建一個(gè)自定義類(lèi),例如Person,并實(shí)現(xiàn)Comparable接口以定義排序規(guī)則:
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 void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public int compareTo(Person other) {
        // 按年齡升序排列
        return Integer.compare(this.age, other.age);
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
  1. 然后,在主類(lèi)中使用TreeSet對(duì)Person對(duì)象進(jìn)行排序:
import java.util.TreeSet;

public class Main {
    public static void main(String[] args) {
        TreeSet<Person> sortedPersons = new TreeSet<>();

        // 添加數(shù)據(jù)
        sortedPersons.add(new Person("張三", 25));
        sortedPersons.add(new Person("李四", 20));
        sortedPersons.add(new Person("王五", 30));

        // 輸出排序后的數(shù)據(jù)
        for (Person person : sortedPersons) {
            System.out.println(person);
        }
    }
}

運(yùn)行此程序后,您將看到按年齡升序排列的Person對(duì)象:

Person{name='李四', age=20}
Person{name='張三', age=25}
Person{name='王五', age=30}

如果您想按降序排列數(shù)據(jù),可以在Person類(lèi)中修改compareTo()方法:

@Override
public int compareTo(Person other) {
    // 按年齡降序排列
    return Integer.compare(other.age, this.age);
}

運(yùn)行程序后,您將看到按年齡降序排列的Person對(duì)象。

0