JAVA 泛型(一)

1、为什么需要泛型

  • 中药店每个抽屉有标签
  • 超市每个瓶子有标签
    集合容器类的设计阶段、声明阶段不能确定这个容器实际存的是什么类型的对象,所以在jkd1.5 以前只能把元素类型设计为Object,Jdk 1.5 以后使用泛型来解决。因为此时除了元素类型不确定,其他部分是确定的,例如关于这个元素如何保存,如何管理等是确定的,因此此时把元素的类型设计成一个参数,这个类型参数叫做泛型

2、泛型的理解

允许在定义接口和类时通过一个一个标识表示类中某个属性的类型或者某个方法的返回值及参数类型。

3、代码查验学习

package com.test;

import org.junit.Test;

import java.util.*;

public class TestGenercity {
    @Test
    public void test1(){
        //泛型不能是基本数据类型
        ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(89);
        list.add(75);
        list.add(88);
        list.add(96);

        //增强for循环遍历
        System.out.println("增强for循环遍历:");
        for (Integer sorce:list) {
            //避免强制类型转换
            int stuSorce = sorce;
            System.out.println(stuSorce);
            //System.out.println(sorce);
        }

        //迭代器遍历
        System.out.println("迭代器遍历:");
        //迭代器也有泛型
        Iterator<Integer> iterator = list.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }

    @Test
    public void test2(){
        //该接口声明的时候就有两个
        Map<String, Integer> map = new HashMap<String, Integer>();
        //要按类型来放
        map.put("zhou", 25);
        map.put("wang", 24);
        map.put("Tom",78);

        //泛型的嵌套
        Set<Map.Entry<String, Integer>> entries = map.entrySet();
        //HashMap 遍历的第二种办法
        Iterator<Map.Entry<String, Integer>> iterator = entries.iterator();
        while (iterator.hasNext()){
            Map.Entry<String, Integer> next = iterator.next();
            String key = next.getKey();
            Integer value = next.getValue();
            System.out.println(key+"   "+value);
        }
        /**总结:
         * 1、集合接口或类在jdk5.0时都修改为泛型
         * 2、在实例化集合类型时指明泛型类型
         * 3、其内部结构使用到类的泛型时只能按照声明的来
         * 如上:list 只能add() int类型
         *
         */

    }
}

运行结果:

增强for循环遍历:
89
75
88
96
迭代器遍历:
89
75
88
96
Tom   78
wang   24
zhou   25
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值