java的Set, List, Map简单介绍
Set, List, Map
Set和List,Map都是集合,Set和List都是继承于Collection接口,而Map不是。
1.Map(映射)
:Map是以key,Value的形式存储数据的映射集合,在取出数据时也是以key去获取value的值。
.HashMap:一个典型的继承Map的类,内部是基于散列表来存取数据,大大的提高了数据的访问速度。key的值是不能重复的,但是value值是可以重复。
.LinkedHashMap:类似于HashMap,只是迭代遍历时是按照插入的顺序排列的。
.TreeMap:以树的形式存储数据,迭代遍历的值是经过排序的。
主要方法:
void put(Object key, Object value); 像map集合插入元素
Object get(Object key); 根据key的值取得所映射的元素
Object remove(Object key); 删除key所映射的元素,并返回该元素
void putAll(Map m); 将符合标准的map插入到此map中
void clear(); 清空整个集合
Set keySet(); 获取所有的key值
Collection values(); 获取所有的value值
因为Map的key是不可重复的,所以获取的key值存入Set集合,而value是可重复的,所以存入Collection
2.Set(集合)
Set集合是一个不可重复,无序的集合。与Colletion一模一样
.HashSet:内部以HashMap来存储数据的HashSet的值为HashMap的key值,HashMap的value是一个Object的类
.TreeSet:TreeSet类实现了SortedSet接口,对集合中的对象进行排序
主要的方法:
void add(Object obj); 向集合添加一个元素
boolean remove(Object obj); 删除集合中的指定元素, 成功返回true
void clear(); 清空整个集合
Object[] toArray(); 将集合转换为一个数组
boolean contains(Object obj) 集合是否存在obj元素
遍历Set集合需要使用迭代器Iterator
Iterator it = set.iterator();
while (it.hasNext()) { // 是否存在下一个元素
it.next(); // 存在,取得下一个元素
}
3.List(列表)
List继承于Collection,但是相比较于Set,List在继承Collection的同时,添加了跟多的方法,且List集合是线性存储
.ArrayList:内部以Array的形式实现,优点:查找访问速度快
.LinkedList:内部以链表的形式实现,优点:插入,删除等操作速度快
List集合可以使用新循环和迭代器遍历集合:
for:
for (Object obj : list) {
System.out.println(obj);
}
Iterator:
Iterator it = list.iterator();
while(it.hasNext()) {
Systemo.out.println(it.next());
}
主要方法:
void add(Object obj); 添加元素
void add(int index, Object obj); 插入元素到指定位置
void get(int index); 取得指定位置元素
void remove(int index); 删除指定位置元素
int indexOf(Object obj); 制定元素的地址
void toArray(); 将集合转换为数组
int Size(); 集合的长度