java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。本站提供基于Java框架struts,spring,hibernate等的桌面应用、web交互及移动终端的开发技巧与资料

保持永久学习的心态,将成就一个优秀的你,来 继续搞起java知识。

Java集合框架--参照博客园优秀文章整理
一、概述:
位于 java.util 这个包下,Java集合框架就是一套工具,它把常用的数据结构和算法集合在一起,让我们能更轻松地、更高效地处理数据。
集合中只能保存对象(保存对象的引用变量)。(数组既可以保存基本类型的数据也可以保存对象)。
当我们把一个对象放入集合中后,系统会把所有集合元素都当成Object类的实例进行处理。从JDK1.5以后,这种状态得到了改进:可以使用泛型来限制集合里元素的类型,并让集合记住所有集合元素的类型
Java的集合框架主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些接口或实现类。即Java中容器分两类,一种是单值的Collection,一种是储存键-值对的Map
注:
Set、List和Map可以看做集合框架的三大接口。
List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。
Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是不能集合里元素不允许重复的原因)。
Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value。
对于Set、List和Map三种集合,最常用的实现类分别是HashSet、ArrayList和HashMap三个实现类。
二、Collection接口
Collection: 是List接口和Set接口的父接口。即单一个体组成的集合。

Public interface Iterator{ 
     Public Boolean hasNext(}; 
     Public Object next(}; 
     Public void remove(}; 
 
 }

View Code
集set
--没有重复项目的集合
(常用有两种:HashSet和TreeSet,其内部实现是一个Map,它的元素就相当于Map中的Key,而Value是一个Object常量,所有对Set的操作都被最终转嫁为对Map的操作)
HashSet-基于散列表的集,加进散列表的元素要实现hashCode()方法
清单List
--位置性集合。加进清单的元素可以加在清单中特定位置或加到末尾
ArrayList:数据列表,其实就是封装了一个数组,因此它的访问速度极快
ArrayList类似于Vector,都用于缩放数组维护集合。
ArrayList和Vector区别:
(1)同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
(2)数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
LinkedList:内部实现是带头结点的双向链表,适合于在链表中间需要频繁进行插入和删除操作
用在FIFO,用addList()加入元素 removeFirst()删除元素
用在FILO,用addFirst()/removeLast()
Map: Map实现类用于保存具有映射关系的数据(key-value)。即一对有关联的个体组成的集合,每个单位都是一对相关联的元素。
三、[b]Map接口[/b]
映射表Map
--用于关键字/数值对,像个Dictionary
java集合框架–参考博客园优秀博客整理-飞网
处理Map的三种集合
关键字集KeySet()
数值集value()
项目集enrySet()
四个具体版本
HashMap-散列表的通用映射表
LinkedHashMap-扩展HashMap,对返回集合迭代时,维护插入顺序
WeakHashMap-基于弱引用散列表的映射表,如果不保持映射表外的关键字的引用,则内存回收程序会回收它
TreeMap-基于平衡树的映射表
四、相关知识:
迭代器设计模式(Iterator)
http://www.cnblogs.com/itTeacher/archive/2012/12/03/2799534.html
迭代器模式有叫做游标(Cursor)模式。GOF给出的定义:提供一种方法访问一个容器(container)对象中的各个元素,而又不暴露该对象的内部细节。
迭代器模式由以下角色组成:
迭代器角色(Iterator): 负责定义访问和遍历元素的接口。
具体迭代器角色(Concrete Iterator):实现迭代器接口,并要记录遍历中的当前位置。
容器角色(Container): 负责提供创建具体迭代器角色的接口。
具体容器角色(Concrete Container):实现创建具体迭代器角色的接口, 这个具体迭代器角色与该容器的结构相关。
java集合框架–参考博客园优秀博客整理-飞网
java集合框架–参考博客园优秀博客整理-飞网
 Java中的Iterator功能比较简单,并且只能单向移动:
  (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
  (2) 使用next()获得序列中的下一个元素。
  (3) 使用hasNext()检查序列中是否还有元素。
  (4) 使用remove()将迭代器新返回的元素删除。
  Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。
迭代器应用:

list l = new ArrayList();
 l.add("aa");
 l.add("bb");
 l.add("cc");
 for (Iterator iter = l.iterator(); iter.hasNext();) {
  String str = (String)iter.next();
  System.out.println(str);
 }

/*迭代器用于while循环

Iterator iter = l.iterator();
 while(iter.hasNext()){
  String str = (String) iter.next();
  System.out.println(str);
 }
 */

因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正。一切为了知识的分享。

后续会有更多的精彩的内容分享给大家。