*****************************************************************************************
======================================集合框=============================================
集合类的由来:**对象用于封装特有数据,对象多了就需要储,如果数目不确定,要就需集合容器。
集合框架的特点:
1.集合是用于存储对象的。
2.集合容器的大小是可变的。
3.集合容器不可以存储基本数据类型值。
集合由于其内部的实现结构不同,就有多种类型的集合容器,通过向上抽取,就形成了集合框架。
集合框架的顶层接口:
java.util
|--Collection接口
Collection接口的常见的方法:
1.添加
boolean add(Object o)
boolean addAll(Collection coll)
2.删除
void clear()
boolean remove(Object o)
boolean removeAll(Collection coll)
3.判断
boolean contains(Object o)
boolean containsAll(Collection coll)
boolean isEmpty()
4.获取
int size()
Iterator iterator():该方法的实现:迭代器
该方法的实现必须依赖于具体的容器来实现,因为每个容器的内部结构是不同的
所有该迭代对象是在其内部实现的,对使用者而言,只要通过iterator()方法获取其迭代对象即可
Iterator接口是对所有Colleciton容器元素取出的公共接口
5.其他
boolean retainAll(Collection coll) 取交集
Object[] toArray() 将集合转换为数组
java.util
|--Collection
-|--List接口 :有序的,可重复的
-|--Vector类 : 内部是数组的,是同步的,增删,查询都很慢
-|--ArrayList类 :内部是数组的,不是同步的,替代Vector,查询很快
-|--LinkedList类 :内部是链表数据结构,不是同步的,增删速度快
-|--Set接口 :唯一的,无序
-|--HashSet类 :内部是哈希表数据结构,不是同步的
-|--TreeSet类 :可以对set集合中的元素进行排序,不是同步的
注1:HashSet中元素是通过hashCode和equals方法来保证元素唯一的,如果hashCode值不同,不用判断equals方法,
直接存储到哈希表中,否则判断equals方法,如果true,视为元素相同,否则不同。
注2:如果要存储到HashSet中,一般要覆盖hashCode和equals方法
================================================================================================
java.util
|-Collections 对容器操作的工具类
|
|-Arrays 对数组的操作工具类
重点掌握方法 asList
注:用Arrays.asList()将数组转集合,但不能改变数组的长度大小,
* 否则会抛出java.lang.UnsupportedOperationException
注:通过Arrays.asList()转换数组为集合,集合中存放的是对象,
如果转换是基本数据数组,会将整个数组看成一个元素存放到集合中
=================================================================================================
java.util
|--Map
|--TreeMap
|--HashMap
|--HashTable :自然排序
Map常用方法:
1.添加
v put(k,v):想容器中添加 键--值 对数据,并返回原先的v值,如果原先没有者返回null值
void putAll(Map<? extends K,? extends V> m)
2.清出
void clear()
v remove(object key):删除容器中的一对值,并返回v值,如果没有者返回null值
3.判断
boolean containsKey(Object key) |
|--容器中是否包含key和value值,有返回true,否则返回false
boolean containsValue(Object value)|
boolean isEmpty():测试容器是否为空,是返回true,否则返回false
4.求长度
int size():求容器 键--值 数
5.其他
Set<Map.Entry<K,V>> entrySet() : 返回此映射中包含的映射关系的 Set 视图。
TreeMap和HashMap如同Set中TreeSet和HashSet