[JAVA]集合框架简述,HashTable、ArrayList、Vector 记录
2013-06-30 18:22
543 查看
框架简述
集合框架的标准定义是 “为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。”按照我的理解,用最通俗的话来说,就是用数据结构里的结构(队列, 栈,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 | 是(二叉树排序) |
数组 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
*/
相关文章推荐
- java集合(ArrayList、vector、HashMap、HashTable)源码剖析
- Java集合源码学习笔记(五)ArrayList,LinkedList,Vector和Hashtable,HashMap的比较
- 集合框架ArrayList、List、Vector+JAVA学习笔记-DAY15
- Java基础 集合框架 共性方法 迭代器 ArrayList LinkedList Vector HashSet TreeSet
- 使用Java实现面向对象编程--集合框架-->Vector和ArrayList
- java 集合框架--ArrayList 和 Vector区别
- Java基础---集合框架---迭代器、ListIterator、Vector中枚举、LinkedList、ArrayList、HashSet、TreeSet、二叉树、Comparator
- Java基础---集合框架---迭代器、ListIterator、Vector中枚举、LinkedList、ArrayList、HashSet、TreeSet、二叉树、Comparator
- 【Java 集合】List(ArrayList、Vector、LinkedList)、Map(HashMap、HashTable、LinkedHashMap和TreeMap)
- (9) java ---- 集合框架图 ArrayList,LinkedList,Vector各自的性能特点及区别
- Java 的Vector, ArrayList, LinkedList 区别简述
- Java中List,ArrayList、Vector,map,HashTable,HashMap区别用法
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
- Java常见集合框架(六):List之Vector
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
- Java中的集合List、ArrayList、Vector、Stack(三)
- Java--集合体系(ArrayList、Vector、LinkedList)
- Java常见集合框架(二十二): Map之Dictionary、Hashtable
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法