Java集合整理---自定义泛型

一、泛型

    泛型是JDK1.5,新添加的特性,其作用是对集合进行“参数化类型”,在JDK1.5之前,还没有泛型这一概念,集合中的元素是Object类型,所以,每次使用集合中的元素时,需要将元素向下造型成对应类型才能使用,错误的可能性很大,非常的不方便。为了简化操作,提高效率,便有了泛型这一新特性,有了泛型,集合就可以规定元素的类型,编译器会在集合进行增删操作时,检查元素类型是否匹配,避免了很多错误。同时在JDK1.5中添加了自动装箱/拆箱的特性,这些新特性使开发者能够更高效的使用集合。

    集合框架中的所有类型都添加了泛型机制。

二、泛型的使用

   (1) 如何定义泛型?

    只需要在定义类时,在类名后添加<E>或<E,A,B>即可,可以添加多个泛型。

    如:

 public class ArrayList<E>{
 	public E get(int index){
 	}
 }
 public class Person<K,V>{
 	private K k;
 	private V v;
 	public K getK(){return k;}
 	public void setK(K k){this.k = k;}
 }

(2)泛型和方法形参比较

    定义时:

public class ArrayList<E>{}
public void sum(String str1,String str2){}

泛型是在类名后定义,形参是在方法名后定义。

    使用时:

ArrayList<Integer> list = new ArrayList<Integer>();

将参数E赋值为引用类型Integer。

sum("abc","123");

将具体值赋给对应的形参。

(3)定义一个可灵活使用的类

public class Person<K,V> {
	private K k;
	private V v;
	public Person(K k,V v){
		this.k=k;
		this.v=v;
	}
	public K getK() {
		return k;
	}
	public void setK(K k) {
		this.k = k;
	}
	public V getV() {
		return v;
	}
	public void setV(V v) {
		this.v = v;
	}
}

定义一个有两个泛型属性的类,并提供构造器和get/set方法,在之后使用这个类时,对属性的使用会更加灵活。

假如我想存两个人的姓名和成绩,那么我可以将Person的泛型分别定义为String和Double类型。

Person<String, Double> p1 = new Person<String, Double>("张三", 99.0);
Person<String, Double> p2 = new Person<String, Double>("李四", 98.0);

假如我又想存第三个人的国籍和城市,那么我可以将Person的泛型定义为String和String类型。

Person<String, String> p3 = new Person<String, String>("中国","上海");
所以,采用泛型机制,可以使类变得更加灵活。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值