对Person类的name属性进行排序

这个问题是我在学习类集的时候遇到的,要想进行排序其实上是针对对象数组进行排序处理。
如果要对对象数组进行处理,对象所在的类必须要覆写Comparable接口并且覆写CompareTo()方法,只有通过此方法才能进行排序。

具体代码实现:

//对Person类的name属性进行排序
class Person implements Comparable {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                '}';
    }

    @Override
    public int compareTo(Person o) {
        if (this.name.compareTo(o.name) > 0) {
            return 1;
        } else if(this.name.compareTo(o.name) < 0) {
            return -1;
        }else{
            return 0;
        }
    }
}

测试代码:

public class Test {
    public static void main(String[] args) {
        TreeSet set=new TreeSet<>();
        //利用Set集合去掉重复元素
        set.add(new Person("张三"));
        set.add(new Person("张三"));
        set.add(new Person("王五"));
        set.add(new Person("王麻子"));
        set.add(new Person("李四"));
        System.out.println(set);
    }
}

运行结果:
对Person类的name属性进行排序_第1张图片

你可能感兴趣的:(JavaSE基础)