zoukankan      html  css  js  c++  java
  • JAVA高级复习-泛型的使用

    1、JDK5.0新增的特性

    2、在集合中使用泛型

    总结:

    ① 集合接口 或 集合类在JDK5.0时都修改为带泛型的结构

    ② 在实例化集合类时,可以指明具体的泛型类型

    ③ 指明完以后,在集合类 或 接口中,凡是定义类 或 接口时,内部结构(比如:方法、构造器、属性等)使用到类的泛型的位置,都指定为实例化的泛型类型。比如:add(E e) --> 实例化以后:add(Integer e)

    ④ 注意点:泛型的类型必须是类,不能是基本数据类型,需要用到基本数据类型的位置,拿其对应的包装类替换

    public class GenericTest {
    
        /**
         * 在集合中不使用泛型可能出现的问题
         */
        @Test
        public void test01(){
            List list = new ArrayList<>();
            list.add(1);
            list.add(2);
            //问题一:类型不安全
            list.add("好的");
    
            for (Object obj : list) {
                //问题二:强转时,出现ClassCastException
                Integer num = (Integer) obj;
                System.out.println(num);
            }
        }
    
        /**
         * 在集合中使用泛型,以ArrayList为例
         */
        @Test
        public void test02() {
            //泛型的数据类型不能是基本数据类型,所以下面的注释掉的是错误的
    //        List<int> list = new ArrayList<>();
            List<Integer> list = new ArrayList<>();
            list.add(1);
            list.add(2);
            //泛型自带类型检查,编译时,就会进行类型检查,保证数据的安全
    //        list.add("好的");
            for (Integer obj : list) {
                //泛型避免了强转操作
                Integer num =  obj;
                System.out.println(num);
            }
        }
    
        /**
         * 在集合中使用泛型,以HashMap为例
         */
        @Test
        public void test03() {
            Map<String, Integer> map = new HashMap<>();
            map.put("TOM", 1);
            map.put("JACK", 2);
            Set<Map.Entry<String, Integer>> entries = map.entrySet();
            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);
                System.out.println(value);
            }
        }
    
    }
    
  • 相关阅读:
    Tweet信息搜集工具tinfoleak
    Visual Studio 2017为Android APK包签名
    Arduino可穿戴教程之第一个程序——上传运行程序(四)
    基于NMAP日志文件的暴力破解工具BruteSpray
    CSS3边框圆角知识
    渐变的几个效果图
    错误类型
    prompt() 方法
    jQuery 遍历
    jquery的商品首页
  • 原文地址:https://www.cnblogs.com/elnimo/p/13648921.html
Copyright © 2011-2022 走看看