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();
}
}
(泛型)FanXingXianDing
最新推荐文章于 2023-12-23 19:39:51 发布
本文通过具体的Java代码示例介绍了如何使用泛型来创建具有通用性的比较器和迭代器,展示了如何向TreeSet中添加不同类型的对象并进行排序和遍历。

10万+

被折叠的 条评论
为什么被折叠?



