Java集合框架——泛型概述

泛型概述

一、泛型概述

  • 泛型(Generic),JDK1.5推出的新特性
  • 作用:对集合中的类型进行限定,可以把类型当作参数传递
  • 概念:泛型是一种把类型明确的工作推迟到对象的创建或方法的调用之后的特殊类型(类型参数化)

二、泛型的由来

  • 由下图代码可知,当list集合中添加不同类型的元素(Object和Integer型)时,虽不会报错,但是当代码遍历list集合时,便会出现类型转换异常的错误

  • 类型转换异常:java.lang.ClassCastException
    在这里插入图片描述

  • 由于集合在添加元素的时候可以添加任何引用类型的对象,但是遍历时因为类型不统一,很容易出错,所以java就使用了限制集合类型的方式来避免错误,这种限制集合类型的机制就叫做泛型

  • 如果给集合添加了泛型,集合在添加元素的时候就会对类型进行检测。这样就能把运行时出错的可能提前到了代码的编译期

三、泛型的应用

  • 格式:<数据类型>
  • 限制数据类型之后集合中只能添加被限定的数据类型,否则会报错(如下图)
    在这里插入图片描述
package com.generic.demo;

import java.util.ArrayList;
import java.util.Iterator;

public class GenericTest {

	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<String>();
		
		list.add("hello");
//		list.add(10);  //自动装箱,相当于new Integer(10)
//		list.add(new Integer(10));
		
		Iterator<String> iterator = list.iterator();
		while(iterator.hasNext()) {
			String next = iterator.next();  //此处无需强制类型转换
			System.out.println(next);  // hello
		}
	}
}

四、使用泛型的好处

  • 避免了程序运行时,由于集合内部元素数据类型不一致而导致的错误
  • 迭代元素的时候不需要强制类型转换
  • 可以消除由于没有添加泛型导致程序出现的警告
    • (无需使用@SuppressWarnings(“all”)来压制警告)

五、泛型的注意事项

  • 尖括号中的数据类型只能是引用数据类型
  • 泛型推断(JDK1.7的新特性)
    • 有左有右可以
    • 有左没右可以
    • 没左有右不可以(泛型不起作用)
	ArrayList<String> list = new ArrayList<String>();  // 可以
	ArrayList<String> list = new ArrayList();  // 可以,但不推荐使用
	ArrayList list = new ArrayList<String>();  // 不可以,泛型不起作用

六、泛型的应用场景

  • 接口
  • 方法
  • 类、抽象类
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值