6. ArrayList第三讲
索引(下标)是从0开始的
.indexOf()方法用于查找元素首个下标
.lastIndexOf()方法用于查找元素最后一个下标
.isEmpty()方法用于检查集合是否为空
.remove()方法用于删除元素,默认根据下标删除,可以根据object和index删除
.removeAll()方法用于移除所有元素
.replaceAll()方法用于替换所有元素
.toLowerCase()用于转换成小写
.toUpperCase()用于转换成大写
.retainAll()方法用于取交集
.set()方法用于给指定的下标元素设置值
.sort()方法用于排序,默认从小到大
.reverse()方法用于置反集合
.subList()方法用于切割容器,需要注意截止于前一个元素
7. Linked链表
ArrayList数组集合,增删慢,查询快
LinkedList链表集合,增删快,查询慢
8. LinkedList一带而过
- 链表是数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址
- 链表可分为单向链表和双向链表
- Java
LinkedList类似于ArrayList,是一种常用的数据容器
9. 提醒
- 多看JDK文档,多练习,把基础打好
10. iterator 迭代器初试
- 迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需目标或结果
- 每一次对过程的重复被称为一次“迭代”,而每一次迭代的结果会被用来作为下一次迭代的初始值
迭代器Iterator,不管用于ArrayList还是LinkedList都可以迭代输出
迭代器类似用链表的形式去迭代,也可以指定泛型
11. fori、增强for、迭代器的区别、注意事项和分别用途
fori适合数据的读取与修改
for each适合数据的读取
Iterator不要使用嵌套,适合数据的读取与修改
for each绝对不能与.remove()方法一起使用,危险会导致所有数据删除
for each已经是一个小型的迭代器了,如果一定要修改集合的话可以使用迭代器,但不建议在for each中使用对象引用去修改元素
12. 谈谈三者性能
比较时间复杂度,foreach和迭代器谁更快呢?
- 如果是
ArrayList,用三种方式遍历的速度是for>Iterator>foreach,速度级别基本一致,一般都会用for或者for each,因为Iterator写法相对复杂一些
- 如果是
LinkedList,则三种方式遍历的差距很大了,数据量大时越明显,Iterator>foreach>>>for,推荐使用foreach或者Iterator
参考:List遍历:for,foreach Iterator 速度比较
13. Set和HashSet
HashSet基于HashMap来实现的,是一个不允许有重复元素的集合,允许有 null 值,是无序的,即不会记录插入的顺序
HashSet不是线程安全的, 如果多个线程尝试同时修改HashSet,则最终结果是不确定的,必须在多线程访问时显式同步对HashSet的并发访问
HashSet 实现了 Set 接口
使用Hash函数实现HashSet,元素无序,且不重复
14. LinkedHashSet
如果要创建有序集合呢?LinkedHashSet便是有序的
15. Map、HashMap、Entry
java.util.Map下的接口和继承类关系简易结构图:
HashMap是映射关系,即键Key值Value对
HashMap不能使用迭代器Iterator
.replace()方法可以替换键Key对应的值Value
让Key以集合形式输出,.keySet()方法返回值是HashMap中Key值的集合
让HashMap以集合形式输出, .entrySet()方法的返回值也是Set集合
16. Map注意点
已经存在的键值对,再次.put()会替换原来的,.get()不存在的值会返回null
17. Entry与Map转换Set之后遍历: Iterator<Entry<Integer,Integer>> iterator = entrySet.iterator(); (什么?看不懂这行?)
Entry就是用来管理键值对对象的,将对象包裹起来,提供遍历的方式
Entry可以使用迭代器,筛选值,但只适合在内存中使用,不适用于JDBC
18. 提及 LinkedHashMap以及课后作业
HashMap是无序的,可以自定义泛型,而LinkedHashMap相当于有序的HashMap,可以自己写一个包括增删改查的学生管理系统了
19. 集合框架部分结束
剩下的类需要自己去学习了!了解各类是怎么实现的,以及其之间的区别,JDK的新特性暂时用不到,还没学习到框架


























