文章目录

  • 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集合框架优点(课后))

P6-01.Introduction

java8加入函数式编程

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

一个集合不应该仅仅是一个容器,还应该完成操作
集合也是个对象

集合框架:
不同表现细节的集合,希望把数据类型和底层实现分隔开,抽象开,所以用接口实现

java.lang的包是核心,不用import序、、、forEach要函数式编程才能使用

有一个接口叫Collection,不要弄混

比较核心的集合接口
黄色的是实现类
LinkedList类实现了Deque和List接口

<?extends E>泛型

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

List集合接口

放什么就是什么类型

命名一般就用数组类型名

父类不一定有子类的特性

这样就在类的内部创建一个List

遍历方法:






P6-04.ArrayList


P6-05.LinkedList


也是,创建一个元素,然后封装

P6-06.Performance of List

执行效率的一个比较





P6-07.Map Interface

map:存放键值对的容器
Map:并不是集合,但是个容器,不能单开一章就在这里讲了
Java中HashMap遍历几种方式
Java中遍历HashMap的5种方式

不建议用hashtable,淘汰了

后面一些用流更强大就不讲了
没有foreach语句,但流里有foreach方法
Java中HashMap遍历几种方式
Java中遍历HashMap的5种方式
Java8支持foreach了

P6-08.Map接口操作MapInterface02

放进去,取出来






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

hashmap怎么工作的,来一个键值对,创建一个节点
冲突时:(哈希值相同时),按数量用单向链表,红黑树(平衡二叉树),自动转换


这个似乎不是啊,我复现了下:
hashmap根本就没法链表啊

大佬做法:后期作为作业自己完成?????(上面的那个还是作为List做的)


下图是hash值相同了,可不是key相同了

P6-10.SetSet集合接口

加重复元素不抛异常,但也不改变set(数学意义上集合)
没有基于索引类型的方法
hashset无序,(与插入的顺序也不同)


相互转换:
有些关系也是不能重的(1:1)

P6-11.Iterators.Iterator接口

移除元素:

一个抛异常,另一个无法删两个连续相同的(其实第二个 i–下就行)

有一个解决方法:
允许迭代时移除
都不需要知道什么类型,什么数据结构:只要面向接口就好

游标:

操作当前迭代器就好,代码有些冗余,后面会有更好的方法

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


实现了个非静态的内部类


用 i 留了下当前迭代器
拿出第0个元素

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


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

  1. java第六章工具包6.2.Collection Streams 2020.4.7

    文章目录 P6-14.Function Programming函数式编程) P6-15.Lambda Lambda表达式) P6-16.Stream集合Stream) P6-17.Filter& ...

  2. java第六章工具包P6-03.Optional 2020.4.?

    目录 P6-21.Optional 复现: P6-22.Filter&Map 复现:猜测是正确的:filter用return 真假,~~(idea甚至会提示你)~~ 而ifpresent 是不 ...

  3. JAVA第六章第6题,java第六章例题源代码

    <JavaWeb 程序设计> 练习题参考答案 第一章:Servlet 基础 1.下列选项中属于...由于 PHP 开放源 代码,并且是免费的,所以非常流行,是当今 Internet 上最为 ...

  4. 尚学堂JAVA第六章作业答案参考

    本人初学java,自己写的答案.有错误的地方请各位留言指正. 数组查找操作:定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单 ...

  5. 高性能MySQL(3th)(第六章 sql优化) —— 01 减少冗余数据

    一 查询冗余的条数 如实际前台只需要TOP10,但是查询时使用 LIMIT 100. 解决方案:使用需要的大小限制.e.g. LIMIT 10,或者至多 LIMIT 20. 二 查询冗余的的列 避免使 ...

  6. C语言数据结构(大话数据结构——笔记4)第六章:树

    文章目录 第六章:树(tree.root.subtree)(177) 树的定义(179) 结点分类(结点的度degree.叶结点leaf[终端结点].分支结点[非终端节点]{内部结点}.树的度)(18 ...

  7. Java编程思想第四版第六章习题

    断更了一天,今天开始第六章,隔热感觉有点像C++的Iclude. 闲话少说,直接上题,编译器IDEA. 1.在某个包中创建一个类,在这个类所处的包的外部创建该类的一个实例. class A: /*** ...

  8. 深入理解Java虚拟机-第六章 类文件结构

    第六章 类文件结构 6.1 概述 略 6.2 无关性的基石 因为想要实现 "Write Once,Run Anywhere"的伟大理想,Java 虚拟机被发明了出来.这些虚拟机都可 ...

  9. java基础(六章)

    java基础(六章) 一.for循环的使用场合 l  while循环--先判断,再循环 while(1.条件表达式){      //2.循环操作      //3.更改循环条件表达式 } l  do ...

最新文章

  1. node-express-1
  2. 径向基神经网络(实例故障分类)
  3. 求给定精度的简单交错序列部分和(c语言)
  4. ubuntu drbd双机互备
  5. python自学教程-Python学习教程(一)自学资源分享
  6. mysql数据库访问程序_c++程序访问MySQL数据库操作示例
  7. Java Netty 初步
  8. 全网最!详!细!tarjan算法讲解
  9. python网页教程_python网页教程
  10. Electronic Commerce 12th Gary Schneider
  11. 电脑怎么找回被删除的文件?
  12. 微信小程序开发之mpVue
  13. 【动态规划】爬楼梯爬的不仅仅是楼梯
  14. 电子工程师必备(电子书版3本全):
  15. wifi打印服务器方案USB共享打印机模块参考设计
  16. 陈建文资料介绍:与众不同的交易机遇
  17. 高手都在用的21类新媒体运营工具
  18. 金蝶K3案例教程物料与物料清单后台配置
  19. 柯乐义高级弹出菜单(可以有三级菜单)
  20. php换肤,react实现换肤功能

热门文章

  1. Excel添加读音(中英均可)
  2. 在Ubuntu下搭建FTP服务器的方法
  3. QImage 与 cv::Mat 之间的相互转换
  4. UVA 11584 Partitioning by Palindromes 动态规划 入门
  5. Immutable 想破坏它也没办法
  6. recovery v1跟recovery v2的区别
  7. kali linux 编码,Kali Linux 2019.4解决中文乱码问题
  8. 前端获取后端传来的session_java后台如何获取,前台传来的表单数据
  9. sscom 中文显示 乱码_解决SSM框架使用过程中的中文乱码问题
  10. c4droid语言字体颜色,关于printf如何输出颜色