Sorting Lists2

来源:互联网 发布:广告公司设计软件 编辑:程序博客网 时间:2024/06/06 09:05

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;}@Overridepublic 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类与其他所有类的关系。

0 0
原创粉丝点击