`
2007yn
  • 浏览: 44196 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

集合类

 
阅读更多
List ArrayList
LinkedList
Vector
Stack
Set HashSet
TreeSet
Map HashMap
TreeMap
ConcurrentHasMap
并发包 CopyOnWriteArrayList
CopyOnWriteArraySet
ArrayBlockingQueue
AtomicInteger
ThreadPoolExecutor
Executors
FutureTask
Semaphore
CountDownLatch
CyclicBarrier
ReentrantLock
Condition
ReentrantReadWriteLock
序列化/反序列化











0
0
分享到:
评论
1 楼 2007yn 2011-06-16  
对于 ArrayList 而言,最须注意的有以下几点:
1.ArrayList 基于数组方式实现,无容量限制
2.ArrayList 在执行插入元素时可能要扩容,在删除元素时并不会减小数组的容量(如希望相应的缩小数组容量,可以调用ArrayList的trimToSize()),在查找元素时要遍历数组,对于非null的元素采取equals的方式寻找:
3.ArrayList是非线程安全的
对于LinkedList而言,需要注意以下几点:
1.LinkedList基于双向链表机制实现
2.LinkedList在插入元素时,须创建一个新的Entry对象,并切换相应元素的前后元素的引用,在查找元素时,须遍历链表,在删除时,要遍历链表,找到要删除的元素,然后从链表上将此元素删除即可
3.LinkedList是非线程安全的
对于Vector而言,最要注意的一点:
Vector是基于Synchronized实现的线程安全的ArrayList,但在插入元素时容量扩充的机制和ArrayList稍有不同,并可通过传入capacityIncrement来控制容量的扩充
对于Stack而言,要注意的一点:
Stack基于Vector实现,支持LIFO
HashSet是Set接口实现,Set和List最明显的区别在于Set不允许元素重复,而List允许,Set为了做到不允许元素重复,采用的是基于HashMap来实现
HashSet而言,最要注意的有以下几点:
1.HashSet基于HashMap实现,无容量限制
2.HashSet是非线程安全的
TreeSet和HashSet的主要不同在于TreeSet对于排序的支持,TreeSet基于TreeMap实现
对于TreeSet而言,最要注意的有以下几点:
1.TreeSet基于TreeMap实现,支持排序
2.TreeSet是非线程安全的
对HashMap而言,最要注意以下几点:
1.HashMap采用数组方式存储key,value构成的Entry对象,无容量限制
2.HashMap基于key hash寻找Entry对象存放到数组的位置,对于hash冲突采用链表的方式来解决
3.HashMap在插入元素时可能会要扩大数组的容量,在扩大容量时须要重新计算hash,并复制对象到新的数组中
4,HashMap是非线程安全的
TreeMap是一个支持排序的Map实现,其实现方式和HashMap并不相同
对TreeMap而言,最应了解的有以下几点:
1.TreeMap基于红黑树实现,无容量限制
2.TreeMap是非线程安全的

单线程下运行结果
在增加元素上,ArrayList的性能相对较差,原因是ArrayList在容量不够时需要扩充,使Vector性能表现更好的原因在于虽然其扩充容量的机制不同,但由于评测的单位为纳秒,因此可以认为在目前这个场景中,各种集合类在增加元素时性能的变化差距不大
在查找元素上,ArrayList,LinkedList,Vector,Stack的性能略差一点点,这是由于它们在查找时需要遍历整个集合,而Set,Map类型的都是通过hash后再到链表上查找,因此速度会更快
在删除元素上,除TreeSet和TreeMap外,其他集合类的性能基本无差距,TreeSet基于TreeMap而实现,TreeMap之所以性能相对较差的原因是它在删除时需要排序

相关推荐

    C++编程:建造集合类实训

    C++编程:建造集合类实训 本文将详细讲解C++编程中集合类的实现,包括集合类的定义、添加元素、删除元素、判断集合是否为空或满、判断元素是否包含在集合中、计算集合中的元素总数、输出集合中的元素、求两个集合的...

    实现复数集合类 使用c++

    实现复数集合类 要求:1、实现两个类:集合类(Cassemblage )和复数类(Cmycomplex)。  2、输入:分别输入集合中元素个数和元素(实部和虚部)。  3、输出:按照复数模的大小从小到大输出,不考虑两个复数模相等...

    java集合类线程安全.doc

    Java 集合类线程安全 Java 集合框架是由 Java 平台标准版 1.2 引入的通用数据结构与算法框架。其灵活的面对对象设计受到了广大 Java 程序员的一致青睐,为 Java 平台的成熟奠定了坚实的基础。 线程安全不是一个...

    java集合类详解(set list ArrayList等java集合类详述)

    Java 集合类详解 Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、...

    java自定义集合类

    自定义集合类则是开发者根据特定需求扩展Java集合框架的行为,以满足个性化或特定业务场景的功能需求。以下是对"java自定义集合类"这一主题的详细解释。 首先,Java集合框架包括接口(如List、Set、Map)和实现这些...

    java集合类的代码

    Java集合类是Java编程语言中一个非常重要的概念,它提供了数据结构和算法的实现,使得在处理一组对象时更加高效和灵活。Java集合框架包括接口(如List、Set、Queue等)和实现这些接口的类(如ArrayList、HashSet、...

    第13讲 JAVA集合类.ppt

    Java集合类是Java编程语言中用于存储和管理对象的关键组件,它们构成了Java Collections Framework的核心。这个框架提供了一组高效、灵活的数据结构,使得开发者能够轻松地处理数据集合,而无需关心底层实现的复杂性...

    C#的6种常用集合类大比拼

    在C#编程语言中,集合类是处理数据结构的关键组件,它们提供了比传统数组更灵活、功能更丰富的数据存储方式。本文将深入探讨C#中六种常用的集合类,包括它们的特点、用法以及与其他数据结构如数组的区别,旨在帮助...

    VC++集合类,详细例子。

    MFC 集合类可以按形态和设计方案来分类。MFC 为三种类型的集合形态提供了类: 列表 数组 映射 MFC 还提供三种类型的设计方案: 不使用 C++ 模板。 使用由简单元素组成的基于 C++ 模板的集合。 使用由类型...

    Java集合类详解总结

    ### Java集合类详解总结 在Java编程中,集合框架(Collection Framework)是处理一组对象的强大工具,它提供了标准的数据结构来存储和操作这些对象。Java集合框架主要包括`Collection`、`Set`、`List`、`Queue`、`...

    java集合类演示源码

    集合类的框架为集合的实现者提供了大量的接口和抽象类,并对其中的某些机制给予了描述,例如,Iterator(迭代协议)。实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户...

    泛型集合类的大概应用

    根据给定的信息,本文将详细解释“泛型集合类的大致应用”,重点在于Java中的泛型集合类,如`ArrayList`、`HashMap`等,并结合实际代码示例进行讲解。 ### 泛型集合类概述 在Java编程语言中,集合框架提供了一组...

    集合类框架图

    java集合类框架图

    java反射,获取所有属性、方法以及List集合类

    本篇文章将深入探讨如何使用Java反射来获取一个类的所有属性、方法,并处理List集合类。 首先,让我们了解Java反射的基础概念。在Java中,`java.lang.Class`类代表运行时的类信息。我们可以使用`Class.forName()`...

    控制台程序 集合类的应用

    在IT行业中,集合类是数据结构的一个重要组成部分,它们提供了组织和操作对象的方便方式。在本案例中,我们关注的是一个名为"Animals"的集合类,它扩展了Java中的集合框架,允许通过关键字来索引Animal对象。此外,...

    自己整理的IO流,网络编程,集合类的一些笔记

    虽然题目中提到了集合类,但是在提供的内容中没有具体的集合类介绍。集合类在Java中是一个非常重要的组成部分,用于存储和操作一组对象。主要包括以下几种类型: - **List**:有序的集合,允许重复元素。 - **Set**...

    Week17_第9讲_泛型与集合类.pdf

    ### 泛型与集合类知识点总结 #### 一、泛型简介 - **定义**:泛型是Java SE 5.0引入的新特性,它允许程序员在编译时检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率。 - **作用**: - ...

    Java基础----集合类汇总

    本文将深入探讨Java集合类的汇总,包括List、Set和Map这三大核心接口及其实现类。 首先,让我们从List接口开始。List是一种有序的集合,允许有重复元素,并且支持通过索引来访问元素。ArrayList和LinkedList是List...

    Java集合排序及java集合类详解.pdf

    ### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...

    整数集合类的各种操作

    在编程领域,集合类是数据结构中的重要组成部分,主要用于存储一组不重复的元素。在Java中,`java.util.Set`接口及其子接口如`HashSet`、`TreeSet`等提供了整数集合的操作。本篇文章将深入探讨如何实现整数集合的...

Global site tag (gtag.js) - Google Analytics