java第六章工具包6.1P6-01.Collections 2020.4.3+7

文章目录

      • P6-01.Introduction
      • P6-02.Collection Interface 集合与Collection集合接口
          • <?extends E>泛型
          • <?extends E>泛型 希望声明的时候不知道,但使用时知道是什么类型,使用时用新的把原来的擦去
      • List集合接口
      • P6-04.ArrayList
      • P6-05.LinkedList
      • P6-06.Performance of List
      • P6-07.Map Interface
      • P6-08.Map接口操作MapInterface02
      • P6-09.HashMap分析(课后)HashMap
      • P6-10.SetSet集合接口
      • P6-11.Iterators.Iterator接口
      • P6-12.ArrayList Iterators.ArrayList Iterator分析(课后)
      • (P6-13.Benefits Java集合框架优点(课后))

java第六章工具包6.1P6-01.Collections 2020.4.3+7_第1张图片

P6-01.Introduction

java8加入函数式编程
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第2张图片

P6-02.Collection Interface 集合与Collection集合接口

一个集合不应该仅仅是一个容器,还应该完成操作
集合也是个对象
在这里插入图片描述
集合框架:
不同表现细节的集合,希望把数据类型和底层实现分隔开,抽象开,所以用接口实现
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第3张图片
java.lang的包是核心,不用import序、、、forEach要函数式编程才能使用
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第4张图片
有一个接口叫Collection,不要弄混
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第5张图片
比较核心的集合接口
黄色的是实现类
LinkedList类实现了Deque和List接口
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第6张图片

<?extends E>泛型

java第六章工具包6.1P6-01.Collections 2020.4.3+7_第7张图片

<?extends E>泛型 希望声明的时候不知道,但使用时知道是什么类型,使用时用新的把原来的擦去

java第六章工具包6.1P6-01.Collections 2020.4.3+7_第8张图片

List集合接口

放什么就是什么类型
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第9张图片
命名一般就用数组类型名
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第10张图片java第六章工具包6.1P6-01.Collections 2020.4.3+7_第11张图片
父类不一定有子类的特性
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第12张图片
这样就在类的内部创建一个List
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第13张图片
遍历方法:
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第14张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第15张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第16张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第17张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第18张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第19张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第20张图片

P6-04.ArrayList

java第六章工具包6.1P6-01.Collections 2020.4.3+7_第21张图片java第六章工具包6.1P6-01.Collections 2020.4.3+7_第22张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第23张图片

P6-05.LinkedList

java第六章工具包6.1P6-01.Collections 2020.4.3+7_第24张图片
也是,创建一个元素,然后封装
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第25张图片

P6-06.Performance of List

执行效率的一个比较

java第六章工具包6.1P6-01.Collections 2020.4.3+7_第26张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第27张图片java第六章工具包6.1P6-01.Collections 2020.4.3+7_第28张图片java第六章工具包6.1P6-01.Collections 2020.4.3+7_第29张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第30张图片java第六章工具包6.1P6-01.Collections 2020.4.3+7_第31张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第32张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第33张图片

P6-07.Map Interface

map:存放键值对的容器
Map:并不是集合,但是个容器,不能单开一章就在这里讲了
Java中HashMap遍历几种方式
Java中遍历HashMap的5种方式
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第34张图片
不建议用hashtable,淘汰了
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第35张图片
后面一些用流更强大就不讲了
没有foreach语句,但流里有foreach方法
Java中HashMap遍历几种方式
Java中遍历HashMap的5种方式
Java8支持foreach了
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第36张图片

P6-08.Map接口操作MapInterface02

放进去,取出来
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第37张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第38张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第39张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第40张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第41张图片java第六章工具包6.1P6-01.Collections 2020.4.3+7_第42张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第43张图片java第六章工具包6.1P6-01.Collections 2020.4.3+7_第44张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第45张图片

P6-09.HashMap分析(课后)HashMap

hashmap怎么工作的,来一个键值对,创建一个节点
冲突时:(哈希值相同时),按数量用单向链表,红黑树(平衡二叉树),自动转换
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第46张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第47张图片
这个似乎不是啊,我复现了下:
hashmap根本就没法链表啊
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第48张图片
大佬做法:后期作为作业自己完成?????(上面的那个还是作为List做的)
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第49张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第50张图片
下图是hash值相同了,可不是key相同了
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第51张图片

P6-10.SetSet集合接口

加重复元素不抛异常,但也不改变set(数学意义上集合)
没有基于索引类型的方法
hashset无序,(与插入的顺序也不同)
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第52张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第53张图片
相互转换:
有些关系也是不能重的(1:1)
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第54张图片

P6-11.Iterators.Iterator接口

移除元素:

一个抛异常,另一个无法删两个连续相同的(其实第二个 i–下就行)
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第55张图片
有一个解决方法:
允许迭代时移除
都不需要知道什么类型,什么数据结构:只要面向接口就好
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第56张图片
游标:
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第57张图片
操作当前迭代器就好,代码有些冗余,后面会有更好的方法

P6-12.ArrayList Iterators.ArrayList Iterator分析(课后)

java第六章工具包6.1P6-01.Collections 2020.4.3+7_第58张图片
实现了个非静态的内部类

java第六章工具包6.1P6-01.Collections 2020.4.3+7_第59张图片
用 i 留了下当前迭代器
拿出第0个元素
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第60张图片java第六章工具包6.1P6-01.Collections 2020.4.3+7_第61张图片

(P6-13.Benefits Java集合框架优点(课后))

java第六章工具包6.1P6-01.Collections 2020.4.3+7_第62张图片
java第六章工具包6.1P6-01.Collections 2020.4.3+7_第63张图片

你可能感兴趣的:(java)