Java集合的泛型应用

本文详细介绍了泛型在Java集合中的应用,包括List和Map的泛型使用,对比了使用泛型前后代码的差异,展示了泛型如何提高代码的安全性和避免类型转换异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

泛型:
1.在集合中使用泛型
2.自定义泛型、泛型接口、泛型方法(了解)
3.泛型和继承的关系
4.通配符

泛型的特点:
1.限定了数据类型,不用强转,便捷
2.保护了类型的安全
3.避免了类型转化的异常

// 1.在没有使用泛型的情况
	@Test
	public void test1() {
		List list = new ArrayList();
		list.add(90);
		list.add(88);
		list.add(99);
		// 1.没有使用泛型,任何Object及其子类对象都可以添加进来
		list.add(new String("abc"));
		for (int i = 0; i < list.size(); i++) {
			// 2.强制转化为int类型时,引发异常:ClassCastException异常(类型转化异常)
			int sc = (int) list.get(i);
			System.out.println(sc);

		}
	}

// 2.在集合中使用泛型
	// 泛型内部只能存储对象类型
	@Test
	public void test2() {
		List<Integer> list = new ArrayList<Integer>();
		list.add(90);
		list.add(88);
		list.add(99);
		// 使用for循环
		for (int i = 0; i < list.size(); i++) {
			int score = list.get(i);
			System.out.println(score);
		}
		// 使用迭代器
		Iterator<Integer> iterator = list.iterator();
		while (iterator.hasNext()) {
			System.out.println(iterator.next());

		}

	}

@Test
	public void test3() {
		Map<String, Integer> map = new HashMap<String, Integer>();
		map.put("张三", 80);
		map.put("李四", 88);
		map.put("王五", 98);
		// 方式一
		// 先获取所有key的集合
		Set<String> set = map.keySet();
		// 遍历key的集合 得到每一个key值
		for (String key : set) {
			// 根据key值调用get()方法获取对应的value值
			Integer value = map.get(key);
			System.out.println(key + "-" + value);
		}
		System.out.println("------------------");
        //方式二
		//首先通过map.entrySet()得到Set集合,Set集合中包含得是一个一个Entry(key-value)
		//通过entry的getKey()方法得到key值,通过entry的getValue()得到value值
		Set<Entry<String,Integer>> entrySet = map.entrySet();
		//遍历循环Set集合,得到Entry
//		for(Entry<String,Integer> entry:map.entrySet()){
		for(Entry<String, Integer> entry:entrySet){
			String key=entry.getKey();
			int value=entry.getValue();//自动拆箱
			System.out.println(key+"-"+value);
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值