泛型限定二---用父类定义比较器,用于子类,减少代码,节约空间

原创 2015年11月21日 14:54:31
/*
 定义比较器的时候可以定义父类的比较器,这样其子类对象都可以调用,避免了要根据不同的对象定义不同的比较器。
 */
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;

class compare implements Comparator<Person2>{
	public int compare(Person2 t1, Person2 t2) {
		// TODO 自动生成的方法存根
		return t1.getName().compareTo(t2.getName());
	}
}
public class GenericDemo2 {
	public static void main(String[] args) {
		TreeSet<Student3> ts=new TreeSet<Student3>(new compare());
		ts.add(new Student3("abc001"));
		ts.add(new Student3("abc003"));
		ts.add(new Student3("abc002"));
		ts.add(new Student3("abc004"));
		
		Iterator<Student3> it=ts.iterator();
		while(it.hasNext())
		{
			System.out.println(it.next().getName());
		}
		TreeSet<Worker> wk=new TreeSet<Worker>(new compare());
			wk.add(new Worker("w---abc001"));
			wk.add(new Worker("w---abc006"));
			wk.add(new Worker("w---abc004"));
			wk.add(new Worker("w---abc003"));
			wk.add(new Worker("w---abc005"));
			Iterator<Worker> it1=wk.iterator();
			while(it1.hasNext()){
				System.out.println(it1.next().getName());
			}
	}
}

class Person2{
	private String name;
	Person2(String name){
		this.name=name;
	}
	public String getName(){
		return name;
	}
}
class Student3 extends Person2{
	Student3(String name){
		super(name);
	}
}
class Worker extends Person2{
	Worker(String name){
		super(name);
	}
}


结果:


版权声明:本文为博主原创文章,如需转载请注明出处。

相关文章推荐

父类如何获取子类传递的泛型

package com.reflect.other;import java.io.Serializable;/** * 简单pojo类(测试用,无具体意义) * * @author edgew...

泛型通配符中,子类边界与父类边界方法受限原因

造成通配符子类边界``,与父类边界``方法使用受限的原因,是因为他们都无法得知传递来的参数的具体类型;子类边界只能确定传递来的参数的子类型,父类边界只能确定传递来的参数的父类型;由于引用只能由父类指向...

黑马程序员_日记55_TreeSet、泛型限定和比较器限定方式的综合运用方式

——- android培训、java培训、期待与您交流! ———-七、TreeSet、泛型限定和比较器限定方式的综合运用方式一下面来个综合的复杂代码//让每一个集合自身具备比较性 import jav...

java代码在内存后续(构造器,子类父类)

本节主要讲构造器的调用过程构造器接下来先看个例子 class Demo{ static int x= 1; int y = 1; static { ...

java中父类和子类中的静态代码块、非静态代码块和构造器的执行顺序

先来看一下程序:package com.future.javaTest.testJavaProcess; /** * @ClassName: B * @Description: 父类,测试ja...

父类构造器、子类构造器、static代码块、非static代码块执行顺序

最近在校招笔试中遇到好几次求子类、父类构造器执行顺序问题,基本能做出来,但有些复杂的也挺耗时。查了些资料,再结合自己做的测试,总结一下贴在这里。

在父类和子类中定义重载函数 心得

情景:  今天碰到一个问题,父类A写了fun函数,自己重载了很多种形式,然后子类B写了一个fun函数进行重载,然后发现 子类对象访问不到父类的fun函数。直接使用代码说明情况 代码如下: #pr...

C++中父类成员变量和子类成员变量重复定义及访问方法的深入探究

在用C++做工程时,继承是C++最常用的特性之一,因为它会使得工程复用性很高。但是现在存在一个问题,例如我们在使用MFC库时,往往会去继承库里面的一个类,但是我们并不去看父类里面的实现代码,所以在定义...

C++父类子类间函数重定义,虚函数重写(覆盖)以及重载

写这篇文章的时候我还是不太确定重定义,重写(覆盖),重载之间的确切的区分方法。下面是我今天的理解以及相关测试代码,以待后观!! 第一:简单的子类重定义父类成员函数(函数三要素:返回类型,函数名,参数...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)