一、集合概念
1、在我们的开发实践中,经常需要保存一些变长的数据集合,于是,我们需要一些能够动态增长长度的容器来保存我们的数据。而我们需要对数据的保存的逻辑可能各种各样,于是就有了各种各样的数据结构。Java中对于各种数据结构的实现,就是我们用到的集合
二、集合API
Java的集合框架是由很多接口、抽象类、具体类组成的,都位于java.util包中
三、 Collections接口
Collection 接口-定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式
(一)、List 接口: Set 中的数据对象不可以重复
1、ArrayList:数组列表,数据采用数组方式存储,遍历元素和随机访问元素的效率比较高
常用方法:
add(E element)
add(int index, E element)
get(int index)
indexOf(Object o)
lastIndexOf(Object o)
remove(int index)
set(int index, E element)
2、LinkedList:链表,数据链表存储方式 ,插入、删除元素时效率比较高
常用方法:
add(int index,Object element)
addFirist(Object element)
addLast(Object element)
get(int index)
removeFirst()
removeLast()
remove(int index)
getFirst()
getLast()
3、Vector:数组列表,添加同步锁,线程安全
(二)、Set 接口:
1、Set中所存储的元素是不重复的,但是是无序的, Set中的元素是没有索引的
2、 Set接口有两个实现类
(1)、HashSet :元素不能重复,元素无序
注:向HashSet添加元素如何判断是否无序:先用内容计算一个hash值(用hash值比较比较快,但是hash值可能会有重复),当hash值相同时,再用equals()判断内容是否相等
(2)、TreeSet :元素不能重复,元素有序,底层是树形结构
四、Map 接口:(键值对)
1、键不能重复,值能重复
2、Mapa接口常用方法
(1)、HashMap
(2)、TreeMap:键有序
(3)、HashTable: 实现了同步,不能存储为null的键
3、遍历:keyset()获取到所有的键,遍历键的集合