`
hegan_2009
  • 浏览: 11958 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

java基本集合类

阅读更多

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基本集合类,java基本集合类

    本篇文章将详细讲解Java中的基本集合类ArrayList、LinkedList和Vector,以及HashSet和TreeSet。 1. ArrayList ArrayList是基于动态数组实现的集合类,它允许存储重复元素。默认初始容量为10,当添加元素超过容量时...

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

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

    java常用集合类总结

    Collection接口是Java集合类的基础接口,提供了基本的集合操作,如add、remove、contains等。Collection接口有两个子接口:List接口和Set接口。List接口是有序的,可以重复元素,常用的实现类有ArrayList和...

    Java集合详解,详细讲解java的集合类

    本文将深入讲解Java集合类,特别是Collection接口和其下的List、Set,以及Map接口中的几个重要实现类。 首先,我们来看Collection接口。Collection是最基本的集合接口,它代表一组Object,即它的元素。Collection...

    java的集合类教学

    理解这些基本数据结构有助于更好地理解和使用Java集合类。 总之,Java集合类提供了丰富的选择来满足不同场景下的数据存储需求,从无序不重复的Set到有序可重复的List,再到键值对的Map,都有对应的接口和实现类。...

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

    ### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集...了解和掌握这些集合类的基本特性和使用方法,对于编写高效、可靠的Java应用程序至关重要。

    java集合类详解

    Collection接口是集合层次中的根接口,它位于层次的最顶端,规定了集合类应提供哪些基本操作,例如添加、删除、遍历元素等。JDK中并没有提供Collection接口的直接实现,而是提供了子接口Set、List和Queue。 Set接口...

    第13讲 JAVA集合类.ppt

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

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

    在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以...

    Java集合类矩阵图

    Java集合类矩阵图是Java编程中非常重要的一个概念,它主要涵盖了Java集合框架中的各种接口、类以及它们之间的关系。这个矩阵图可以帮助开发者更清晰地理解Java集合框架的层次结构和实现方式。在这个矩阵图中,你可以...

    java 集合类 容器类

    ### Java集合类与容器类详解 #### 一、引言 在Java编程中,集合类是一种非常重要的数据结构,用于存储一系列对象。...了解这些集合类的基本概念和使用方法对于开发高效稳定的Java应用程序至关重要。

    Java集合类性能分析

    ### Java集合类性能分析 #### 一、Java集合框架概览 Java集合框架是一个非常重要的概念,它提供了处理数据集合的标准方法。集合框架的核心部分主要包括集合接口、抽象类以及具体的实现类。 - **集合接口**:Java...

    java集合类面试题总结

    Java 集合类面试题总结 Java 集合类是 Java 语言中的一种重要组件,用于存储和操作数据。下面总结了 Java 集合类的一些常见问题和答案。 HashMap 和 Hashtable 的区别 HashMap 和 Hashtable 都是 Java 中的散列表...

    Java 集合类 简单Demo

    这篇博客文章可能详细解释了如何创建、操作和理解Java集合类的基本概念。 首先,Java集合框架主要包括接口和实现这些接口的类。接口如`List`, `Set`, `Queue`, `Map`等,定义了集合的行为和操作。而`ArrayList`, `...

    java集合类

    集合类使用初始容量和加载因子调整自己的大小。集合类全部支持泛型,是一种数据安全的用法。 Java集合框架定义了几个接口。这些集合接口决定了集合实现类的基本特性。对于不同的集合实现类提供了这些标准接口的不同...

    2JAVA编程高级-集合类.pdf

    ### JAVA编程高级——集合类知识点详解 #### 一、Java中的集合类概述 在Java编程中,集合类是一个非常重要的概念,它主要用于存储和管理对象的集合。与数组相比,集合提供了更多的灵活性,例如动态调整大小的能力...

    大公司最喜欢问的Java集合类面试题

    ### Java集合类重要知识点 #### 一、概述 在Java编程中,集合类是一个非常...通过以上内容的学习,我们可以更好地理解Java集合类的基本概念和使用方法,这对于通过大公司的技术面试至关重要。希望本文对你有所帮助!

Global site tag (gtag.js) - Google Analytics