集合框架
关系图
list
接口特点:有序,有索引,可以重复元素。
Set
接口特性:无序,无索引,不能重复元素。
Iterator
迭代器
Iterator
迭代器用于不同容器 ( List Set等不同分支的实现类),取出元素,即集合遍历。
示例:
foreach
上面例子可以简写为foreach语法:
ArrayList
存储任意类型对象
ArrayList
存储任意类型对象指定类型为顶层对象,即可存储任意类型对象。
泛型
java泛型是“伪泛型”,只是编译时用于类型安全验证,编译之后的class文件没有泛型。
带有泛型的类:
详情例子可以参考Arraylist
类。
泛型的通配符 ?
?
泛型的限制
上限限制,可以传递本类或者子类对象
下限限制,可以传递本类或者父类对象,不安全
并发修改异常
在遍历集合的同时,修改了集合的长度(add,remove)时,会造成并发修改异常(ConcurrentModificationException)。
例:
数据存储结构
堆栈
先进后出,出入都在顶端。
队列
先进先出,出入口在两侧。
数组
ArrayList
有索引,查找速度快,增删慢。
链表
LinkedList
查找慢,增删快。
HashMap
的遍历
HashMap
的遍历Last updated