[JAVA]集合框架简述,HashTable、ArrayList、Vector 记录

框架简述   


       集合框架的标准定义是 “为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。”


       按照我的理解,用最通俗的话来说,就是用数据结构里的结构(队列, 栈,Tree,Map)把各种编程时用到的数据类型笼统的装起来,装在一个盒子里。然后利用这种算法的特性对盒子里的数据进行排序、查找、插入、返回各种操作。


        这样一来,框架的好处就很明显了。不需要自己每次单独为当前程序的数据设计独特的算法和操作不需要关心程序的底层设计,让自己更关注程序的整体方面,写代码的质量和速度更优


java集合简述


        java集合框架就是基于上述定义开发的用于java的编程框架。

        Collection接口是基础接口,提供了添加、删除、判断是否空、清空、迭代、返回数组等方法。


        List、Set、Map是这个集合体系中最主要的三个接口。其中List,Set接口继承自Collection接口,并做了一些具体的不同类型的扩充。Map则是把“键-值”进行关联。


        List具体实现了Arraylist和Linklist,从名字可以看出一个是数组实现一个是链表实现的。List接口都是把数据有序放入容器,且不允许重复。Set的具体实现有Hashset和Treeset,不同于List接口的是Set接口里的对象元素是不能重复的。Map接口是把 “键-值”关联的接口,也就是建立一个映射关系,例如 键=“登陆窗口”  值=FrmLogin,也就是把每一个键对应一个值,所以键不能有重复,值可以有重复,可以进行put和set操作。


 

有序否

允许元素重复否

Collection

List

Set

AbstractSet

HashSet

TreeSet

是(用二叉树排序)

Map

AbstractMap

使用key-value来映射和存储数据,

Key必须惟一,value可以重复。

HashMap

TreeMap

是(二叉树排序)


              

       除了这些接口,还有一些java早期的遗留容器。          

       数组 Vector,通过addElement()加入一个对象,用elementAt()取出它,还可以查询当前所保存的对象的个数size(); 哈希表 Hashtable 使用put和set设置和取出关联键值。

     

//Hashtable
private static Hashtable<String, JFrame> table = new Hashtable<String, JFrame>();
table.get(str);
table.set(str,frm);

//Arraylist
private ArrayList<PrintWriter> printWriter = new ArrayList<PrintWriter>();
printWriter.add(printWriterToClient);  

//Linklist
private LinkedList<String>msglist = new LinkedList<String>();
msglist.addFirst(stringFromClient); 
if (!msglist.isEmpty())
                    {
                        s = (String) msglist.removeLast();
                        txtContenText.append(s + "\n");
                     }

//Vector

Vector vecFields = new Vector();
vecFields.addElement("string_test_sample");


//HashSet
Set hashSet = new HashSet();
hashSet.add(new String("aaa"));

//共有的方法
add(Object)                添加元素(Object);
addAll(Collection)         添加一个集合(Collection);
remove(Object)             删除一个指定的元素(Object);
removeAll(Collection)      删除一个指定的集合(Collection);
size()                     容量;
isEmpty()                  判断是否为空,即[]或size()=0,返回true或false;
contains(Object)           判断某个元素(Object)是否在集合中,返回true或false;
containsAll(Collection)    判断是否包含某个集合(Collection);
clear()                    清空,使得size()=0;
toArray()                  转换成一个Object[];
iterator()                 构造一个迭代器,用于输出HashSet中的元素


       具体使用哪种集合接口要看程序里的数据的规模,类型,操作方法等,从而选出最优的集合,使程序开发最轻松高效。



 /*

******逸雨清风 出品

******2013.6.30

******http://blog.csdn.net/xyydyyqf

*/


             

猜你喜欢

转载自blog.csdn.net/xyydyyqf/article/details/9205473