zoukankan      html  css  js  c++  java
  • 集合框架系列教材 (四)- ArrayList

    步骤1:泛型 Generic
    步骤2:泛型的简写
    步骤3:泛型的系统学习
    步骤4:练习-支持泛型的ArrayList
    步骤5:答案-支持泛型的ArrayList

    步骤 1 : 泛型 Generic

    不指定泛型的容器,可以存放任何类型的元素
    指定了泛型的容器,只能存放指定类型的元素以及其子类

    package property;

    public class Item {

        String name;

        int price;

         

        public Item(){

             

        }

         

        //提供一个初始化name的构造方法

        public Item(String name){

            this.name = name;

        }

         

        public void effect(){

            System.out.println("物品使用后,可以有效果");

        }

         

    }

    package collection;

       

    import java.util.ArrayList;

    import java.util.List;

      

    import property.Item;

    import charactor.APHero;

    import charactor.Hero;

       

    public class TestCollection {

      

        public static void main(String[] args) {

              

            //对于不使用泛型的容器,可以往里面放英雄,也可以往里面放物品

            List heros = new ArrayList();

              

            heros.add(new Hero("盖伦"));

              

            //本来用于存放英雄的容器,现在也可以存放物品了

            heros.add(new Item("冰杖"));

              

            //对象转型会出现问题

            Hero h1=  (Hero) heros.get(0);

            //尤其是在容器里放的对象太多的时候,就记不清楚哪个位置放的是哪种类型的对象了

            Hero h2=  (Hero) heros.get(1);

              

            //引入泛型Generic

            //声明容器的时候,就指定了这种容器,只能放Hero,放其他的就会出错

            List<Hero> genericheros = new ArrayList<Hero>();

            genericheros.add(new Hero("盖伦"));

            //如果不是Hero类型,根本就放不进去

            //genericheros.add(new Item("冰杖"));

              

            //除此之外,还能存放Hero的子类

            genericheros.add(new APHero());

             

            //并且在取出数据的时候,不需要再进行转型了,因为里面肯定是放的Hero或者其子类

            Hero h = genericheros.get(0);

             

        }

           

    }

    步骤 2 : 泛型的简写

    为了不使编译器出现警告,需要前后都使用泛型,像这样:

    List<Hero> genericheros = new ArrayList<Hero>();


    不过JDK7提供了一个可以略微减少代码量的泛型简写方式

    List<Hero> genericheros2 = new ArrayList<>();


    后面的泛型可以用<>来代替,聊胜于无吧

    package collection;

       

    import java.util.ArrayList;

    import java.util.List;

    import charactor.Hero;

       

    public class TestCollection {

      

        public static void main(String[] args) {

            List<Hero> genericheros = new ArrayList<Hero>();

            List<Hero> genericheros2 = new ArrayList<>();

          

        }

           

    }

    步骤 3 : 泛型的系统学习

    泛型的知识还包含 支持泛型的类 泛型转型 通配符 这些内容都在泛型章节详细展开


    更多内容,点击了解: https://how2j.cn/k/collection/collection-arraylist-generic/687.html

  • 相关阅读:
    Tire树的理解和应用
    C语言:socket简单模拟http请求
    C语言:关于socket的基础知识点
    php中的ip2long和long2ip的理解
    理解php中的pack/unpack/ord/chr
    zlog学习笔记(mdc)
    计算机工作的进行
    期末总结
    第十四周学习报告
    第十三周学习报告
  • 原文地址:https://www.cnblogs.com/Lanht/p/12615500.html
Copyright © 2011-2022 走看看