在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输出。