(泛型)FanXingXianDing

来源:互联网 发布:盘古网络面试 编辑:程序博客网 时间:2024/06/05 20:01
package jihe;import java.util.Comparator;import java.util.Iterator;import java.util.TreeSet;class Person7{    private String name;    Person7(String name)    {        this.name=name;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}class Student7 extends Person7{    Student7(String name)    {        super(name);    }}class Worker7 extends Person7{    Worker7(String name)    {        super(name);    }}class Add7{    void stuAdd(){    TreeSet<Student7> s=new TreeSet<Student7>(new Cp());    s.add(new Student7("java 01"));    s.add(new Student7("java 02"));    s.add(new Student7("java 03"));    s.add(new Student7("java 04"));    s.add(new Student7("java 05"));    /*    Iterator<Student7> it=s.iterator();    while(it.hasNext())    {        System.out.println("stu: "+it.next().getName());    }    */    Iter(s);    }    void worAdd()    {        TreeSet<Worker7> w=new TreeSet<Worker7>(new Cp());        w.add(new Worker7("+++java 01"));        w.add(new Worker7("+++java 02"));        w.add(new Worker7("+++java 03"));        w.add(new Worker7("+++java 04"));        w.add(new Worker7("+++java 05"));        /*        Iterator<Worker7> it=w.iterator();        while(it.hasNext())        {            System.out.println("wor: "+it.next().getName());        }        */        Iter(w);    }    public void Iter(TreeSet<? extends Person7> ts)//泛型迭代器,<? extends Person7>如此此迭代器上限为Person7,可以为其子类所用    {        Iterator<? extends Person7> it=ts.iterator();        while(it.hasNext())        {            System.out.println(it.next().getName());        }    }}class Cp implements Comparator<Person7>//泛型比较器,此比较器需要的元素是name,而父类含有,所以直接用父类泛型调用{                                       //有多个集合时,可以将其要进行比较的元素放在父类,这样泛型后就避免了强制转换    public int compare(Person7 p1,Person7 p2)    {        return p2.getName().compareTo(p1.getName());    }}public class FanXingXianDing {    public static void main(String[] args) {        Add7 a=new Add7();        a.stuAdd();        a.worAdd();    }}
0 0
原创粉丝点击