1.arrayList:
a.初始容量:10
b.扩容:*1.5+1
c.删除时并不减少容量,可调用 TrimToSize()压缩
d.非线程安全
2.LinkedList
a.基于双向链表实现
b.非线程安全
3.vector
a.基于synchronized的ArrayList
b.通过传入的capacityIncrement扩容,若capacityIncrement>0,则数组length+capacityIncrement
若capacityIncrement<=0,则 length*2
c.线程安全
4.stack
a.stack基于vector实现
b.线程安全
5.HashSet
a.基于HashMap实现
b.非线程安全
6.TreeSet
a.基于TreeMap实现,支持排序
b.非线程安全
7.HashMap
a.loadFactor=0.75,thrshold=12,capacity=16
b.扩容:若当前元素个数>thrshold,把capacity扩大一倍,对元素重新hash,填入数组,从设thrshold
c.非线程安全
d.对于冲突元素采用链表解决
8.TreeMap
a.基于红黑树的实现,支持排序
9.性能测试:
a.当数量较小时(10):
1).增加:ArrayList性能稍差,但基本一致
2).查询:ArrayList、LinkedList、Vector、Stack性能较差(需遍历整个数组),Set、Map较快
3).删除:TreeMap与TreeSet表现较差(删除后需排序),其他基本一致
b.当数量较大时(100):
1).增加:ArrayList性能与10比稍差一点点,TreeMap与TreeSet下降明显
2).查询:与10比,性能基本没太大变化
3).删除:除TreeMap与TreeSet,其他和10比,没有太大变化
c.当数量较大时(1000):
1).增加:与100比,稍有上升,但基本变化不大
2).查询:ArrayList、LinkedList、Vector、Stack大幅度下降,Set、Map基本没有变化
3).删除:性能与查找变化基本一致
综合:对于查找与删除较为频繁,且数据量较大时,采用Set与Map更合适
对于其他场景,可根据实现综合考虑
对于多线程场景:各集合类较单线程相比下降明显,当元素数量为1000时,性能因素取决于线程数,线程数越多,性能下降越明显
Set与Map的实现变现的更出色,随着元素与线程数增加,LinkedList表现的更差。
分享到:
相关推荐
本篇文章将详细讲解Java中的基本集合类ArrayList、LinkedList和Vector,以及HashSet和TreeSet。 1. ArrayList ArrayList是基于动态数组实现的集合类,它允许存储重复元素。默认初始容量为10,当添加元素超过容量时...
Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、remove、contains 等...
Collection接口是Java集合类的基础接口,提供了基本的集合操作,如add、remove、contains等。Collection接口有两个子接口:List接口和Set接口。List接口是有序的,可以重复元素,常用的实现类有ArrayList和...
本文将深入讲解Java集合类,特别是Collection接口和其下的List、Set,以及Map接口中的几个重要实现类。 首先,我们来看Collection接口。Collection是最基本的集合接口,它代表一组Object,即它的元素。Collection...
理解这些基本数据结构有助于更好地理解和使用Java集合类。 总之,Java集合类提供了丰富的选择来满足不同场景下的数据存储需求,从无序不重复的Set到有序可重复的List,再到键值对的Map,都有对应的接口和实现类。...
### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集...了解和掌握这些集合类的基本特性和使用方法,对于编写高效、可靠的Java应用程序至关重要。
Collection接口是集合层次中的根接口,它位于层次的最顶端,规定了集合类应提供哪些基本操作,例如添加、删除、遍历元素等。JDK中并没有提供Collection接口的直接实现,而是提供了子接口Set、List和Queue。 Set接口...
Java集合类是Java编程语言中用于存储和管理对象的关键组件,它们构成了Java Collections Framework的核心。这个框架提供了一组高效、灵活的数据结构,使得开发者能够轻松地处理数据集合,而无需关心底层实现的复杂性...
在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以...
Java集合类矩阵图是Java编程中非常重要的一个概念,它主要涵盖了Java集合框架中的各种接口、类以及它们之间的关系。这个矩阵图可以帮助开发者更清晰地理解Java集合框架的层次结构和实现方式。在这个矩阵图中,你可以...
### Java集合类与容器类详解 #### 一、引言 在Java编程中,集合类是一种非常重要的数据结构,用于存储一系列对象。...了解这些集合类的基本概念和使用方法对于开发高效稳定的Java应用程序至关重要。
### Java集合类性能分析 #### 一、Java集合框架概览 Java集合框架是一个非常重要的概念,它提供了处理数据集合的标准方法。集合框架的核心部分主要包括集合接口、抽象类以及具体的实现类。 - **集合接口**:Java...
Java 集合类面试题总结 Java 集合类是 Java 语言中的一种重要组件,用于存储和操作数据。下面总结了 Java 集合类的一些常见问题和答案。 HashMap 和 Hashtable 的区别 HashMap 和 Hashtable 都是 Java 中的散列表...
这篇博客文章可能详细解释了如何创建、操作和理解Java集合类的基本概念。 首先,Java集合框架主要包括接口和实现这些接口的类。接口如`List`, `Set`, `Queue`, `Map`等,定义了集合的行为和操作。而`ArrayList`, `...
集合类使用初始容量和加载因子调整自己的大小。集合类全部支持泛型,是一种数据安全的用法。 Java集合框架定义了几个接口。这些集合接口决定了集合实现类的基本特性。对于不同的集合实现类提供了这些标准接口的不同...
### JAVA编程高级——集合类知识点详解 #### 一、Java中的集合类概述 在Java编程中,集合类是一个非常重要的概念,它主要用于存储和管理对象的集合。与数组相比,集合提供了更多的灵活性,例如动态调整大小的能力...
### Java集合类重要知识点 #### 一、概述 在Java编程中,集合类是一个非常...通过以上内容的学习,我们可以更好地理解Java集合类的基本概念和使用方法,这对于通过大公司的技术面试至关重要。希望本文对你有所帮助!