zoukankan      html  css  js  c++  java
  • head first java ( 16章 )

    java 有现成的数据结构可以使用

    ArrayList不是唯一的集合, TreeSet, HashMap, LinkedList 等等都是集合,但是,

    实际上还是 ArrayList 比较实用

    image

    image

    - 泛型中重要的事情( <>代表泛型 )

      1. 创建ArrayList时你必须指定它所容许的对象, 就像单纯数组那样.

      2. 多态遇到泛型, 例如 ArrayList<Animal> = new ArrayList<Dog>(), ArrayList<Dog> = new ArrayList<Animal>()

         显然,上面蓝色的可以, 红色的不行, 你将Dog作为值传递给Animal, 这没有问题, dog 当然时动物, 但是反过来就不行了.

      3. 如何取用泛型里的元素

    - ArrayList 类

      public class ArrayList<E> extends AbstractList<E> implements List<E> {

        public boolean add ( E o )

      }

      // 以上代码中的 E 可以用 T等任意字母替换

    image

    - 运用泛型的方法

    image

      image

      image

    image

      image

      注意: 以上看着有点蒙,分解一下就好了(看下图)

      image

      -- ArrayList 类定义( 所以该类得全称应该是 ArrayList<T>, 其中T是参数类型 )

      public class ArrayList<T> extends AbstractList<E> implements List<E>

    - LIST, SET, MAP 

      List: 知道索引顺序,对付顺序是好手

      Set: 不准许重复

      Map: 用key来搜索

    image

    image

    - 相等性问题

     image

     image

    如果改写了 equals 方法就必须要改写 hascode方法

    数组的类型是在运行期间检查的,但是集合类型检查只会发生在编译期间(不能多态)

    所以,引入万用类型, 比如 T

    public <T extends Animal> void takeThing(ArrayList<T> list)

    public void takeThing(ArrayList<? extends Animal> list)

    以上两行程序是等价的, 第一行的把类型提前了,更好看一点

  • 相关阅读:
    关于js原型链继承的一些复习
    echarts 柱状图
    js的属性监听
    改变input[type=range]的样式 动态滑动
    占位符 css
    JS简单实现:根据奖品权重计算中奖概率实现抽奖的方法
    layui navTree 动态渲染菜单组件介绍
    配置单机Kafka
    树莓派安装pip3以及扩展包的方法
    Gunicorn+Nginx+Flask项目部署
  • 原文地址:https://www.cnblogs.com/moveofgod/p/3027816.html
Copyright © 2011-2022 走看看