可关注小编私信“教程”,获得下载地址---接上文
集合(容器)
目录
•Map (HashMap LinkedHashMap TreeMap)
•Iterator
•使用泛型
•Collections
•集合术语辨析
•集合的选择
1、Map
2、Iterator
所有集合类均未提供相应的遍历方法,而是把把遍历交给迭代器完成。迭代器为集合而生,专门实现集合遍历
Iterator是迭代器设计模式的具体实现
Iterator方法
boolean hasNext(): 判断是否存在另一个可访问的元素
Object next(): 返回要访问的下一个元素
void remove(): 删除上次访问返回的对象。
问题:可以使用Iterator遍历的本质是什么
实现Iterable接口
For-each循环
增强的for循环,遍历array 或 Collection的时候相当简便
无需获得集合和数组长度,无需使用索引访问元素,无需循环条件
遍历集合时底层调用Iterator完成操作
For-each缺陷:
数组:
•不能方便的访问下标值
•不要在for-each中尝试对变量赋值,只是一个临时变量
集合:
•与使用Iterator相比,不能方便的删除集合中的内容
For-each总结:
除了简单遍历并读出其中的内容外,不建议使用增强for
3、ListIterator
ListIterator和Iterator的关系
public interface ListIterator
都可以遍历List
ListIterator和Iterator的区别
使用范围不同
• Iterator可以应用于更多的集合,Set、List和这些集合的子类型。
• 而ListIterator只能用于List及其子类型。
遍历顺序不同
• Iterator只能顺序向后遍历; ListIterator还可以逆序向前遍历
•Iterator可以在遍历的过程中remove();ListIterator可以在遍历的过程中remove()、add()、set()
•ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。
4、使用泛型
起因:
JDK1.4以前类型不明确:
装入集合的类型都被当作Object对待,从而失去自己的实际类型。
从集合中取出时往往需要转型,效率低,容易产生错误。
解决办法:
泛型,在定义集合的时候同时定义集合中对象的类型
好处:
增强程序的可读性和安全性
5、术语辨析
集合和数组的比较
ArrayList和LinkedList 的联系和区别
Vector和ArrayList的联系和区别
HashMap和Hashtable的联系和区别
集合和数组的比较
数组不是面向对象的,存在明显的缺陷,集合完全弥补了数组的一些缺点,比数组更灵活更实用,可大大提高软件的开发效率而且不同的集合框架类可适用于不同场合。具体如下:
1 : 数组容量固定且无法动态改变,集合类容量动态改变。
2:数组能存放基本数据类型和引用数据类型的数据,而集合类中只能放引用数据类型的数据。
3:数组无法判断其中实际存有多少元素,length只告诉了array容量;集合可以判断实际存有多少元素,而对总的容量不关心
4:集合有多种数据结构(顺序表、链表、哈希表、树等)、多种特征(是否有序,是否唯一)、不同适用场合(查询快,便于删除、有序),不像数组仅采用顺序表方式
5:集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的方法和属性调用即可实现各种复杂操作,大大提高软件的开发效率。
6、Collections
Collection和Collections的区别
Collection是Java提供的集合接口,存储一组不唯一,无序的对象。它有两个子接口List和Set。
Java中还有一个Collections类,专门用来操作集合类 ,它提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
7、集合案例
案例1:添加和查看商品
使用集合模拟数据库
添加商品
查看商品
案例2:完成购物车的添加和查看操作
购物车条目CartItem
购物车
完成添加操作
完成查看操作
完成删除操作(可选)
8、总结
不知道有多少java程序员能看到这里。
如果你依然觉得有些茫然,不如跟有多年Java开发经验的资深工程师聊一聊。
每天2小时学习时间,密集输入Java开发相关知识及经验,帮你快速实现技术和职业成长上的突破。
只需要关注+转发+评论,然后私信我“教程”就可以获取了,方法很简单,就看自己怎么去把握了,看好你们哦!
閱讀更多 java高級開發 的文章