一、集合框架
1.Collection接口:所有集合类的父接口
2.Set接口:基于该接口的集合类,无序且唯一
3.List接口:基于该接口的集合类,有序可重复
实现类
Hashset是Set接口实现类之一,最常用的,无序且唯一
SortedSet接口继承了Set接口,有序可重复,TreeSet是SortedSet接口的实现类,有序且唯一
ArrayList和LinkedList类是List接口最常用的两个实现类,有序可重复
功能
add:添加;remove:删除;size:数量;isEmpty:是否为空;contains:集合是否包含指定元素;iterator:遍历集合的迭代器。
List功能
get:获取指定位置的元素;set:将对象添加到集合中指定位置;indexOf:搜索位置,listIterator 支持双向遍历集合的迭代器。
二、泛型
1.菱形语法:泛型以<>形式呈现,约束存储对象类型,可以不进行强制类型转换。
List<String> list = new ArrayList<String>();
三、Set集合
1.HashSet:基于哈希算法来存放和管理集合数据,hashCode()和equals()。无序且唯一
2.TreeSet:使排序二叉树数据结构来存放和管理集合数据,集合数据按照其顺序自然排序。有序且唯一
排序二叉树:
1) 树中的每个节点,除存放数据外,还有指向左、右子树节点的指针
2) 每个节点通过指针相互连接,相连指针的关系都是父子关系
3) 所有左子树的节点数值都小于此节点的数值
4) 所有右节点的数值都大于此节点的数值
四、List集合
1.ArrayList:数组数据结构存放和管理数据。有序可重复
2.LinkedList:双向链表数据结构存放和管理数据。有序可重复
3.Vector:数组数据结构存放和管理数据。有序可重复
比较一:ArrayList和LinkedList
格式 查询、修改 插入、删除
ArrayList 数组 快 慢 建议:存放查询
LinkedList 双向链表 慢 快 建议:大数据操作
比较二:ArrayList和Vector
格式 时间 线程 性能
ArrayList 数组 JDK1.2 不安全 好 建议:使用Collections工具类将ArrayList包装成线程安全。
Vector 数组 JDK1.0 安全 差
五、迭代器
List<String> list = new ArratList<String>(); Iterator<String> it = list.Iterator(); while(it.hasNext()){ System.out.println(it.next()); }
六、Map(键值对)
1.简介:以Key(键)来存储有索引,无序且唯一
Value值无要求,只需要与Key对应。
2.方法:
1) entrySet:返回键值对的集合
2) keySet:返回映射所有键的集合
3) values:返回映射所有值得集合
4) get:返回指定键的值
5) put:添加键值对
3.实现类
1)HashMap:哈希算法,效率高,线程不安全,无序且唯一 允许键为空
2)HashTable:哈希算法,效率低,线程安全,无序且唯一 不允许键为空