随堂复习(泛型)

第13章:随堂复习与企业真题(泛型)


一、随堂复习

1. 泛型的理解

  • ,泛型参数,使用引用数据类型来赋值。

2. 泛型在集合、比较器中的使用(重点)

  • 集合:ArrayList、HashMap、Iterator
  • 比较器:Comparable、Comparator

3. 自定义泛型类/泛型接口、泛型方法(熟悉)

  • class Order{ }
  • public 返回值类型 方法名(形参列表){}
  • 具体的细节,见IDEA中的笔记。

4. 泛型在继承上的体现

1. 类SuperA是类A的父类,则G<SuperA> 与 G<A>的关系:G<SuperA> 和 G<A>是并列的两个类,没有任何子父类的关系。

比如:ArrayList<Object> 、ArrayList<String>没有关系

2. 类SuperA是类A的父类或接口,SuperA<G> 与 A<G>的关系:SuperA<G> 与A<G> 有继承或实现的关系。
即A<G>的实例可以赋值给SuperA<G>类型的引用(或变量)

比如:List<String> 与 ArrayList<String>

5. 通配符的使用

  • ? 的使用 (重点)
    • 以集合为例:可以读取数据、不能写入数据(例外:null)
  • ? extends A
    • 以集合为例:可以读取数据、不能写入数据(例外:null)
  • ? super A
    • 以集合为例:可以读取数据、可以写入A类型或A类型子类的数据(例外:null)

一、随堂复习

1. 数据结构

  • 数据结构的研究对象:

    • ① 数据间的逻辑关系(集合关系、一对一、一对多、多对多)
    • ② 数据的存储结构(或物理结构)
      • 角度一:顺序结构、链式结构、索引结构、哈希结构
      • 角度二:线性表(一维数组、链表、栈、队列)、树(二叉树、B+树)、图(多对多)、哈希表(HashMap、HashSet)
    • ③ 相关运算
  • 树(了解)

  • 相关数据结构的核心Node的设计(单向链表、双向链表、二叉树、栈、队列)(理解)

2. List接口下的实现类的源码剖析

【面试题】ArrayList、Vector、LinkedList的三者的对比?

  • 层次1:
|-----子接口:List:存储有序的、可重复的数据 ("动态"数组)
       |---- ArrayList:List的主要实现类;线程不安全的、效率高;底层使用Object[]数组存储
                       在添加数据、查找数据时,效率较高;在插入、删除数据时,效率较低
       |---- LinkedList:底层使用双向链表的方式进行存储;在对集合中的数据进行频繁的删除、插入操作时,建议使用此                         类在插入、删除数据时,效率较高;在添加数据、查找数据时,效率较低;
       |---- Vector:List的古老实现类;线程安全的、效率低;底层使用Object[]数组存储
  • 层次2:查看相关api的源码

3. Map接口下的实现类的源码剖析

  • (掌握)HashMap的底层源码的剖析
  • (熟悉)LinkedHashMap的底层源码的剖析
  • (了解)HashSet、LinkedHashSet的底层源码的剖析
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值