java数据结构之链表(java核心卷Ⅰ读书笔记)
1.链表
数组和ArrayList的一个重大缺陷就是:从中间位置删除一个元素要付出很大的代价,因为在这个元素删除之后,所有的元素都要向前端移动,在中间的某个位置插入一个元素也是这个原因。
(小感悟:sun-zheng说了一句,每天在那安静地写代码,才是最轻松的活,不用这跑那跑,不用费太多的口舌,每天吹着空调,外面就是建筑地,别人风吹日赛,真的写代码是一件最轻松的事情)
我们在数据结构这门课中,在链表中添加或者删除某个元素时候,绕来如去的指针可能已经给人留下了极坏的印象,那么Java的集合类库提供了一个类LinkedList给开发者带来了极大的方便
******************
链表的增
*******
增
也是一样的输出结果
**************************
改
********
删
直接调用Iterator接口的包含的3个方法, next() hasNext() remove() 就可以完场大部分功能
****************
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。
Java中的Iterator功能比较简单,并且只能单向移动:
(1) 使用方法iterator()【由集合对象对象调用这个方法】要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。 // 下面的这3个方法是由Iterator iter 中的iter调用的
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
**************************
Iterator是Java迭代器最简单的实现,为List设计的ListIterator接口具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。
***************************
查找