快速业务通道

Java:集合类性能分析 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

Java:集合类性能分析

时间:2011-02-25 zhangjunhd

1.Java 集合框架图

Java:集合类性能分析 - 编程入门网

-集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。

-抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。

-实现类:8个实现类(实线表示),对接口的具体实现。

2.Java容器类介绍

① Java容器类都可以自动地调整自己的尺寸。

② Collection 接口是一组允许重复的对象。

③ Set 接口继承 Collection,不允许重复,使用自己内部的一个排列机制。

④ List 接口继承 Collection,允许重复,以元素安插的次序来放置元素,不会重新排列。

⑤ Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制。

Java 2简化集合框架图

Java:集合类性能分析 - 编程入门网

Java:集合类性能分析(2)

时间:2011-02-25 zhangjunhd

3.Collection接口

基本操作

-增加元素add(Object obj); addAll(Collection c);

-删除元素 remove(Object obj); removeAll(Collection c);

-求交集 retainAll(Collection c);

Collection是最基本的集合接口,所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collection,有一个 Collection参数的构造函数用于创建一个新的Collection,这个新的Collection与传入的Collection有相同类型的元素。

import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; public class AddingGroups {   public static void main(String[] args) {     Collection<Integer> collection = new ArrayList<Integer>(Arrays.asList(        1, 2, 3, 4, 5));     Integer[] moreInts={6,7,8,9,10};     collection.addAll(Arrays.asList(moreInts));     for (Integer i : collection)       System.out.print(i + ",");   } }

结果:

1,2,3,4,5,6,7,8,9,10,

这里展示了Collection接口的2个用法,首先,Collection构造函数接受另一个Collection(List)作为参数,使其初始化。接着,调用addAll()方法添加元素,注意,该方法只接受另一个Collection作为参数。

此外,必须注意,Collection接口不提供随机访问元素的get()方法。因为Collection包括Set,而Set自己维护内部顺序。如果想检查Collection中的元素,那就必须使用迭代器。

4.List接口

4.1 List接口

List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。

和下面要提到的Set不同,List允许有相同的元素。

除了具有Collection接口必备的iterator()方法外,List还提供一个listIterator()方法,返回一个 ListIterator接口,和标准的Iterator接口相比,ListIterator多了一些add()之类的方法,允许添加,删除,设定元素, 还能向前或向后遍历。

4.2 LinkedList类

LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在 LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。此实现不是同步的。

4.3 ArrayList类

ArrayList实现了可变大小的数组。它允许所有元素,包括null。

size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。

每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号