[JAVA]集合框架简述,HashTable、ArrayList、Vector 记录
来源:互联网 发布:知天下图片 编辑:程序博客网 时间:2024/05/20 12:23
框架简述
集合框架的标准定义是 “为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。”
按照我的理解,用最通俗的话来说,就是用数据结构里的结构(队列, 栈,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设置和取出关联键值。
//Hashtableprivate static Hashtable<String, JFrame> table = new Hashtable<String, JFrame>();table.get(str);table.set(str,frm);//Arraylistprivate ArrayList<PrintWriter> printWriter = new ArrayList<PrintWriter>();printWriter.add(printWriterToClient); //Linklistprivate LinkedList<String>msglist = new LinkedList<String>();msglist.addFirst(stringFromClient); if (!msglist.isEmpty()) { s = (String) msglist.removeLast(); txtContenText.append(s + "\n"); }//VectorVector vecFields = new Vector();vecFields.addElement("string_test_sample");//HashSetSet 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]集合框架简述,HashTable、ArrayList、Vector 记录
- java集合 hashmap hashtable weakhashmap linkedlist arraylist vector
- java集合(ArrayList、vector、HashMap、HashTable)源码剖析
- Java集合框架里ArrayList Vector和LinkedList的区别
- java集合框架之List------03_02 ArrayList Vector LinkedList
- 集合框架ArrayList、List、Vector+JAVA学习笔记-DAY15
- 简述Java集合框架
- Java集合框架简述
- 简述Java集合框架
- 简述JAVA集合框架
- java学习:Hashtable,ArrayList,vector示例程序
- java中Vector->ArrayList、Hashtable->HashMap
- 【Java 集合】List(ArrayList、Vector、LinkedList)、Map(HashMap、HashTable、LinkedHashMap和TreeMap)
- Java 的Vector, ArrayList, LinkedList 区别简述
- Java集合ArrayList,Vector,LinkedList
- java 集合 Vector ArrayList LinkedList
- 《java集合框架---------ArrayList》
- Java 集合框架-ArrayList
- WebService概念及相关技术点
- UltraISO刻录光盘和制作可引导U盘教程
- Uva-10066-The Twin Towers
- 846 - Steps
- 通过逆向学习软件设计(2)
- [JAVA]集合框架简述,HashTable、ArrayList、Vector 记录
- 完善上一篇文章中的JTable中的操作
- B树、B-树、B+树、B*树
- Uva-531-Compromise
- 2013年6月29日
- 软件测试中过度设计的那些事儿
- C++ 排序函数 sort(),qsort()的用法
- u盘 修复 windows 启动问题
- special type of data