Sorting Lists2

package naturalsorting;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

class Person implements Comparable {
private String name;

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

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

public String toString() {
    return "Person [name=" + name + "]";
}

}

public class App {

public static void main(String[] args) {
    List<Person> list = new ArrayList<>();
    Set<Person> set = new TreeSet<>();

    add(list);
    add(set);

    System.out.println(list);
    System.out.println(set);

    Collections.sort(list);

    System.out.println(list);
    System.out.println(set);

}

private static void add(Collection<Person> collection) {
    collection.add(new Person("Mark"));
    collection.add(new Person("John"));
    collection.add(new Person("Sarah"));

}

}
如果想调用Collections这个类,像类似于String和Integer那样排序的话,需要在自定义的类中使用泛型,也就是一个接口,这个接口是Comparable<>,它与Comparator<>,没有很大的区别,只不过是其中的函数参数个数不同,导致Comparator<>需要单独创建一个类来使用。
所有的容器都是Collection这个“父类”的“子类”。这样说并不准确,因为Collection<>是一个接口,是泛型,但是初学时,感觉这种关系类似与Object类与其他所有类的关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值