本帖最后由 朱晓杰 于 2013-5-10 20:51 编辑
集合的概念、特点、与数组区别、框架图、共性方法 一、 集合框架概述 1、 集合概念 集合同数组一样,都是容器,数组用于存储、获取、操作对象,那么集合就是用于存储、获取、操作不同引用类型的数据,可以看作是动态的数组。 怎么理解呢? 哆啦A梦拥有一个令人羡慕嫉妒恨的百宝袋,可以存放很多各种各样有趣的宝贝,比如竹蜻蜓,四通八达门,时间隧道…而且不用担心放不下。我想集合就类似与百宝袋,可以存放各种引用类型的数据,String,Integer… 2、集合特点及与数组的区别 集合的特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型对象。 与数组的区别:数组可以存储任意的数据类型,但是一个数组只能存储同一种数据类型的数据,数组长度是固定的,并且 操作数组时容易出现ArrayIndexOfBoundsException(角标越界)异常。 集合只能存储对象,但是集合长度是可变的 ,一个集合可以存储不同类型的对象。 3、集合框架图
主要集合类简单描述: List接口:继承 Collection,允许重复,有序集合,可以通过索引来访问指定位置的集合元素(顺序索引从0开始), List集合默认按元素的添加顺序来设置元素的索引 ArrayList:基于数组实现,方便查找,JDK1.2,线程不安全 LinkedList:基于链表实现,方便增加、删除元素 Set接口:继承 Collection,但不允许重复,无序集合(存入与取出的顺序不一定一致),拥有自己的内部排列机制 HashSet:基于哈希表实现,是线程不安全的 TreeSet:基于二叉树实现,是线程不安全的 Map接口:一组成对的键-值对象,Map中不能有重复的键,拥有自己的内部排列机制 HashMap:基于哈希表实现,是线程不安全的 TreeMap:基于二叉树实现,是线程不安全的 Iterator接口:迭代器,实现对集合中元素的遍历操作,很好的体现了内部类的设计 使用迭代器的步骤: 1.调用iterator()获得集合的Iterator; 2.使用循环不断调用hasNext()方法,判断是否还有元素; 3.在循环体内,调用next()方法获取每个元素 ListIterator:获取List的迭代器 4、共性内容
基本的方法的使用,大家可以在API里面找到详细解释,下面以List,Set,Map集合中经常使用的
ArrayList,HashSet,HashMap集合为例进行遍历: 1. for循环遍历集合 2. 迭代器的使用 3. 增强型for循环的使用(注意:在遍历的过程中,不能对集合本身进行操作)
|