美文网首页JavaSE
JavaSE Day13 泛型集合

JavaSE Day13 泛型集合

作者: 望穿秋水小作坊 | 来源:发表于2021-02-12 21:45 被阅读0次
1. 什么是泛型?(很经典的总结,重要)
  • 将类型变成参数,提高代码的复用率
2. 有泛型类型 Box<T>,那么 Box<Integer> 是 Box<Number> 的子类吗?
  • 不是,同是 Box 类型,不存在子类关系
image.png
3. List、Set、Map 的特点?(先记录一下,后面慢慢理解)
image.png
4. Java 中普通数组的局限性?(至少说 2 点)
image.png
5. Java 中遍历数组的方式?(至少说 3 种)
image.png
6. 为什么很多集合可以调用 for-each ?为什么很多集合可以调用 Iterator 迭代器?
  • 因为 for-each 的本质就是 调用 Iterator 迭代器
  • 而几乎所有集合都实现了 Iterable 接口
image.png image.png
7. 如何自定义一个迭代器?(以后用到再回来看)
image.png
  • 调用代码
image.png
8. ArrayList 的动态扩容原理?(从内存结构图来讲,重要)
image.png
9. 一个细节:当我们判断一个数字 x 是否为偶数时,我们通常会使用 x % 2 == 0 来判断,这种方式可以优化吗?
  • 可以优化:使用 x & 1 == 0 这种位运算,效率会更高
10. 在 Java 中,如果我们在遍历元素的时候,要删除或者添加元素,用哪个方式比较好?
image.png
11. 如果在迭代器中调用 list.remove 方法,就是使用集合自带的方法修改集合长度,可能会抛出 java.util.ConcurrentModificationException 异常,迭代器是如何判断集合被并发修改的?
  • 集合内部维护了一个 modCounter 的成员变量,每当 add 或者 remove 时,会调用 modCounter++
  • 所以迭代器是依靠 modCounter 是否发生改变,从而抛出异常的

相关文章

  • JavaSE Day13 泛型集合

    1. 什么是泛型?(很经典的总结,重要) 将类型变成参数,提高代码的复用率 2. 有泛型类型 Box,那么 ...

  • Java 学习路线

    JavaSE 基础语法 面向对象 异常处理 常用类(包装类、String) 集合框架及泛型 IO 流 多线程 网络...

  • C#基础提升系列——C#集合

    C#集合 有两种主要的集合类型:泛型集合和非泛型集合。 泛型集合被添加在 .NET Framework 2.0 中...

  • JavaSE Day14 泛型集合

    1. Java 集合中的 trimToSize() 和 ensureCapacity(int minCapacit...

  • JavaSE Day15 泛型集合

    1. 泛型的使用限制?(暂时只要了解) 2. Supplier 有什么用? 可以实现短路功能(类似于 && 或者 ...

  • Java—泛型详解和使用

    1 泛型介绍 1.1 泛型的出现   泛型的出现还得从集合说起,没有泛型的时候,我们将一个对象存入集合时,集合不c...

  • 四、Java高级--1、泛型

    泛型定义:数据类型参数化,提前定义好集合中放入什么类型集合框架中没使用泛型和使用泛型的比较 泛型规则和限制1、泛型...

  • java的泛型机制

    <1>:java的泛型机制是javase1.5引入的 <2>:泛型擦除的概念:java中的泛型在编译之后生成的字节...

  • JDK5的新特性

    可变参数 格式: 注意 静态导入 泛型 泛型类: 泛型方法: 泛型接口: 增强for 在 集合_List 中有...

  • 9.泛型(Thinking in java 学习九)

    多态算是一种泛化机制,但是拘泥于单继承体系,也会使程序受限太多。JavaSE5中提出了泛型的概念。 泛型概念:泛型...

网友评论

    本文标题:JavaSE Day13 泛型集合

    本文链接:https://www.haomeiwen.com/subject/zvsjxltx.html