在JAVA 的 JDK API中设计了一组类专门实现各种各样方式的数据存储。这样一组专门来存储其它对象的类,一般称为对象容器类,简称容器类。这组类和接口的设计结构也被统称为集合框架(Collection Framework)。这组类和接口都包括在java.util中。
在集合框架中提供两种存储方式。
一是:依照索引值操作数据, 为每一个存储的数据设定一个索引值。存储在容器中第一个元素的索引值是0。下一个是1,。以此类推。实现这样的方式的集合类都实现java.util,Colletion接口。
二是:依照名称操作数据。
为每一个存储的数据设定一个名称,以后依照该名称操作数据。该名称不能反复。
这样的存储方式也称作 名称---数值对。都实现java.util.Map接口。
依照索引值操作数据的存储方式,又可以依照容器内部是否可以存储反复元素。划分两类。
一类是:同意存储反复元素 实现java.util.List 接口 ;二类是:不同意反复元素, 实现了java.util.Set接口。
List系列。该系列中依照索引值来操作数据,同意反复的元素。
Set系列,该系列依照索引值来操作数据。不同意反复元素。
Map系列,该系类依照名称来操作数据,名称不同意反复。值能够反复。
List系类:
该系类的类比較常见的有ArrayList和LInkedList两个。
ArrayList是以数组为基础实现的List。而LinkedList是以链表为基础实现的List.
add(Object o)方法。追加对象o到已有容器的末尾。
addAll(Object o)将容器对象c中的每一个元素一次追加到当前容器末尾。
get(int index)该方法是返货当前容器对象中所以仅仅index的元素的内容。
inedxOf(Object o)查找当前容器中是否存在对象o,存在返回该对象第一次出现的索引值,不存在返回-1。
remove(int index)删除索引值为index的对象的内容,删除成功返回被删除对象的内容。
remove(Object o)删除对象内容为o的元素。假设有多个则删除索引值最小的一个。 删除成功返回TRUE, 否则返回false。
size()返回当前容器中已经村春的有效元素的个数。
toArray()方法 。 Object[ ] toArray() 将当前容器中的元素依照顺序转换成一个Object数组。
set(int index , Object o)方法,改动索引值为index的内容。替换成o.
set系列
该系列常见的类有。CopyOnWriteArraySet,以数组为基础实现的Set类。
HashSet类,是以哈希表为实现的Set类。
LinkedHashSet。
一链表为基础实现的Set类。
TreeSet。
以树为基础实现的SET类。
Set系列中的方法要比List中慷慨法少非常多,比如不支持改动和插入。对Set系列元素的遍历也须要转换为专门的Iteratro(迭代器)对象才干进行遍历。
比如:Set set=new HashSet(); set.add("11"): Iteratro it=set.iterator(); while(it.hasNext()) System.out.println( (String) it.next() ):
map系列
该系列中包括HanshMap, LinkedHashMap , TreeMap;
get()方法。 Object get(Object key) 获取当前容器中名称为key的结构的相应的值。
put(Object o , Object value )将值value以名称key的形式存储到容器中。
void putall(Map t): 将map对象t中的全部数据依照原来的格式存储到当前容器类中。相当于合并两个map容器。
remove(Object key) 删除容器中名称为key的值
size()返回值数据的组数。
values()返回当前容器中全部的值组成的结合,以Collection对象的形式返回。
keyset,() Set keyset();返回当前容器中 全部的名称,并将全部的名称一Set的形式返回 使用发方法能够实现对Map中全部元素的遍历。
比如:一个map对象。 Set s=map.keyset(); Iteratro it= set.iterator(); while(it.hasNext){ String name=(String)it.next;
String value=(String ) map.get(name); }这样才干把name相应的value输出。