Java集合框架
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、 Collection接口
组操作 :要么是作用于元素组的任务,要么是同时作用 于整个集合的任务。
boolean containsAll(Collection collection) boolean addAll(Collection collection) void clear() void removeAll(Collection collection) void retainAll(Collection collection)
5、List接口
List接口对Collection进行了简单的扩充,可以将任何东 西放到一个List容器中,并在需要时从中取出。 次序是List最重要的特点;它确保维护元素特定的顺序。 List为Collection添加了许多方法,使得能够向List中间插 入与移除元素。 可以在List中间插入和删除元素。 它的具体实现类常用的有ArrayList和LinkedList。在具 体应用时可以根据需要自由选择。
2、Java语言中的集合
用“集合框架”设计软件时,记住该框架四个基本接口的 层次结构关系会有用处:
Collection 接口是一组允许重复的对象。 Set 接口继承 Collection,但不允许重复。 List 接口继承 Collection,允许重复,并引入位置下标。 Map 接口既不继承 Set 也不继承 Collection。
(1)ArrayList
从其命名中可以看出它是一种类似数组的形式进行存储, 因此它的随机访问速度极快。 它允许对元素进行快速随机访问,但是向List中间插入与 移除元素的速度很慢。 特点:底层为数组,删除插入效率低,查询效率高。
(1)ArrayList
ArrayList遍历有两种遍历方式 ,非通用方式,即通过 size()方法,for循环。
ArrayList al = new ArrayList(); al.add(new Integer(10000)); al.add(new Integer(200000)); al.add(new Integer(1000000)); for(int i = 0; i < al.size(); i++) { System.out.println(al.get(i)); }
(1)ArrayList
通用方式,即用迭代器。 printCollection(Collection c){ Iterator it = c.iterator(); while(it.haHale Waihona Puke BaiduNext()) { it.next(); } }
(2)LinkedList
LinkedList: LinkedList的内部实现是链表,它适合于在 链表中间需要频繁进行插入和删除操作。 LinkedList,可用于构建堆栈,或者队列。 底层为双向循环链表:
6、Map接口
Set s = m.keySet(); Iterator it = s.iterator(); while(it.hasNext()){ Object key = it.next(); Object value = m.get(key); }
集合框架总结:
1、 List(有序), Set(无序), Map(键值) 2、对于TreeMap和TreeSet,只在需要排序时,使用一下, 因为他们每次插入新元素,都会重新排序。
6、Map接口
注 意 : 把一系列对象通过一个关键字来存放,key不能重 复,value可重复。
Map m = new HashMap(); put(Object key, Object value);//存放键和值,返回值为Object。 遍历方法 : 通过Map接口提供的keySet()方法,会返回一个Set类型 无序集合,存放着key对象(KEY不重复,所以是一个Set)。
提高程序设计效率。 提高程序速度和质量。集合框架通过提供对有用的 数据结构和算法的高性能和高质量的实现使你的程 序速度和质量得到提高。 集合框架鼓励软件的复用。对于遵照标准集合框架 接口的新的数据结构是可复用的。
2、Java语言中的集合
Java2的集合框架,主要有三个接口:List、Set和Map。 其中,List和Set继承了Collection,而Map则独成一体。
3、 Collection接口
containsAll方法:允许您查找当前集合是否包含了另一个集合的所 有元素,即另一个集合是否是当前集合的子集。 addAll方法:确保另一个集合中的所有元素都被添加到当前的集合 中,通常称为并。 clear方法:从当前集合中除去所有元素。 removeAll:方法类似于 clear() ,但只除去了元素的一个子集。 retain All 方法:类似于 removeAll() 方法,它从当前集合中除去不 属于另一个集合的元素,即交。
4、Set接口
Set接口扩展了 Collection 接口,且根据定义它也禁止在 集合中出现重复元素。它采用所有原始方法,并且未引 入任何新方法。 集合框架为 Set 接口提供了两种通用实现:HashSet 和 TreeSet。 HashSet 来存储不重复的集合。 当需要以一种排序的方式从集合中提取元素的时候 , TreeSet 实现很有用。为了正确运行,添加到 TreeSet 中 的元素必须是可排序的。通常将元素添加到 HashSet , 然后将该集合转换成一个 TreeSet 进行排序遍历,这样更 快一些。
[Bernadine, Clara, Elizabeth, Gene]
3、 Collection接口
该接口支持添加和除去等基本操作。设法除去一个元素时,如果这 个元素存在,除去的仅仅是集合中此元素的一个实例。
boolean add(Object element) boolean remove(Object element)
接口:即表示集合的抽象数据类型。接口提供了让我们对集合 中所表示的内容进行单独操作的可能。 实现:也就是集合框架中接口的具体实现。实际它们就是那些 可复用的数据结构。 算法:在一个实现了某个集合框架中的接口的对象上,完成某 种有用的计算的方法,例如查找、排序等。
1、集合框架的概念
集合框架对编程有什么好处呢?
6、Map接口
Map接口与Collection接口无关系,它表示的集合,内部每个元素是 一个键-值对。 对于键对象来说,像Set一样,一个Map容器中的键对象不允许重复, 这是为了保持查找结果的一致性。 Map有两种比较常用的实现:HashMap和TreeMap。HashMap也用 到了哈希码的算法,以便快速查找一个键,TreeMap则是对键按序 存放,因此它便有一些扩展的方法,比如firstKey(), lastKey()等,可 以从TreeMap中指定一个范围以取得其子Map。 键和值的关联很简单,用put(Object key, Object value)方法即可将一 个键与一个值对象相关联。用get(Object key)可得到与此key对象所 对应的值对象。
Java API开发 Java集合框架(JCF:Java Collections Framework)
兰州石化职业技术学院
软件教研室 任泰明
2010.5
引言:
集合框架用来表示和操作集合的一组接口与类。如数 组、列表和队列等。 一个集合(也称容器)是指将一组元素组合成一个单 元的简单对象。 集合用于存储、取回、操作和传递这些聚合的元素。 Java集合框架的设计者Bloch Joshua,他著有《Java高 效编程》。
(2)LinkedList
import java.util.*; class MyStack { private LinkedList ll=new LinkedList(); public void push(Object o) { ll.addFirst(o); } public Object pop() { return ll.removeFirst(); } public boolean empty() { return ll.isEmpty(); }
本讲内容:
1、集合框架的概念 2、Java语言中的集合 3、Collection接口 4、Set接口 5、List接口 6、Map接口
1、集合框架的概念
集合框架:是为表示和操作集合而规定的一种统一的、 标准的体系结构。 任何集合框架都包含三大块内容:对外的接口、接口的 实现和对集合运算的算法。
集合的使用示例:
import java.util.*; public class SetExample { public static void main(String args[]) { Set set = new HashSet(); set.add("Bernadine"); set.add("Elizabeth"); set.add("Gene"); set.add("Elizabeth"); set.add("Clara"); System.out.println(set); Set sortedSet = new TreeSet(set); System.out.println(sortedSet); } } [Bernadine, Gene, Clara, Elizabeth]
(2)LinkedList
可以双向找到前后的节点,最后头尾链接,形成一个环 状。 特点:查寻效率低(从头节点遍历),插入删除效率高。 它具有方法addFirst()、addLast()、getFirst()、getLast()、 removeFirst()、removeLast(),这些方法(没有在任何接 口或基类中定义过)使得LinkedList可以当作堆栈、队列 和双向队列使用。
Collection 接口还支持查询操作:
int size() boolean isEmpty():是否为空 boolean contains(Object element) Iterator iterator()
Iterator 接口的用法说明:
Java的集合框架给出了一个Iterator可以操作一个Collection,而不需 知道这个Collection的具体实现类型是什么。 Collection 接口的 iterator() 方法返回一个 Iterator。使用 Iterator 接 口方法,可以从头至尾遍历集合。 用法举例: Collection collection = ...; Iterator iterator = collection.iterator(); while (iterator.hasNext()) { Object element = iterator.next(); … }
(2)LinkedList
public static void main(String[] args) { MyStack ms=new MyStack(); ms.push("one"); ms.push("two"); ms.push("three"); System.out.println(ms.pop()); System.out.println(ms.pop()); System.out.println(ms.empty()); } }
2、Java语言中的集合
Java 2 框架主要有六个集合实现:
接 口 实 现
Set
HashSet TreeSet
List
ArrayList LinkedList
Map
HashMap TreeMap
集合的使用示例:
说明:
为演示具体 Set 类的使用,下面的程序创建了一个 HashSet,并 往里添加了一组名字,其中有个名字添加了两次。 程序把集中名字的列表打印出来,演示了重复的名字没有出现。 接着,程序把集作为 TreeSet 来处理,并显示有序的列表。