集合框架描述

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值