2010年8月31日22:37:09
定义:专门用来存储其他对象的类,可以动态分配存储空间,一般称为对象容器类,简称容器类。
容器类的API:容器类的API位于java.util包中
容器类的结构:分为 Collection 接口 和 Map接口
Collection |--List(Vector ArrayList LinkedList)
|--Set(HashSet LinkedSet)
Map |--(HashTable HashMap TreeMap)
/*按存储对象来区分*/
Conllection接口的实现类存储的都是一元对象
Map接口的实现类存储的是二元对象
List接口:有序的存取元素并且允许有重复元素的容器接口
Set接口:不包含重复元素的容器接口(存储顺序不按元素的添加顺序)
Vector ArrayList在数据查询上有着优异的表现(使用数组结构实现)
LinkedList在数据的更新上表现突出(因为LinkedLIst是基于顺序表的链表结构设计的)
Set接口的实现类根据每个对象的哈希码值(调用hashCode()获得)用固定的算法算出它的存储索引并把对象存放在散列表的相应位置中,读取的时候同样根据哈希
码值来取对象。因此,要存放到Set容器中的对象一般要重写equals()和hashCode()方法。(Set实现类在查询和更新中表现都很优异)
HashMap存放的是键值对形式的数据 其中K是用Set进行散列存放。数据的存放是无序且不可重复的.
方法:
iterator():每一个Collection的实现类都有一个iterator()方法来返回一个Iterator对象,用它可以很方便的遍历容器内的元素
Iterator提供的方法://通过该对象可以访问不同类型的对象
boolean hasNext();//判断游标右边是否有元素
Object next() ;//返回游标右边的元素并将游标移动到下一个位置
void remove();//删除游标左面的元素
ArrayList中常用的方法(索引从0开始)
boolean add(E e);//将指定的元素添加到此列表的尾部。
void add(int index, E element);//将指定的元素插入此列表中的指定位置。
E get(int index);//返回此列表中指定位置上的元素。
int indexOf(Object o);//返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。
boolean remove(Object o);//移除此列表中首次出现的指定元素(如果存在)。
E set(int index, E element);//用指定的元素替代此列表中指定位置上的元素。
int size() ;//返回此列表中的元素数。
HashMap常用方法
boolean containsKey(Object key);//如果此映射包含对于指定键的映射关系,则返回 true。
boolean containsValue(Object value);//如果此映射将一个或多个键映射到指定值,则返回 true。
V get(Object key);//返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
boolean isEmpty();//如果此映射不包含键-值映射关系,则返回 true。
Set<K> keySet();//返回此映射中所包含的键的 Set 视图。
V put(K key, V value);//在此映射中关联指定值与指定键
V remove(Object key);//从此映射中移除指定键的映射关系(如果存在)。
int size();//返回此映射中的键-值映射关系数。
Collection<V> values();//返回此映射所包含的值的 Collection 视图。
Set<Map.Entry<K,V>> entrySet();//返回此映射所包含的映射关系的 Set 视图。