`
hegan_2009
  • 浏览: 11696 次
  • 性别: 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基本集合类

    java集合类

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

    java集合类的基本用法

    java各种集合类的基本用法,简单,通俗,易懂,很不错的,是一个网友的无私奉献

    Java中大集合

    Java集合 HashMap类 IdentityHashMap类的使用 SortedMap类的基本使用 在map中创建自己的类的定义 随机数的集合 等等等等

    java集合资料整理

    可扩展为自定义集合类。 实现类:8个实现类,对接口的具体实现。 在很大程度上,一旦您理解了接口,您就理解了框架。虽然您总要创建接口特定的实现,但访问实际集合的方法应该限制在接口方法的使用上;因此,允许...

    JAVA知识:面向对象的特征,接口,集合类等

    JAVA相关基础知识:面向对象的基本特征,集合类比较,简单数类型与包装类,异常捕捉,重载,重写

    实验05 Java集合.doc

    2、编写程序练习List集合的基本使用: 1) 创建一个只能容纳String对象名为names的ArrayList集合; 2)按顺序往集合中添加5个字符串对象:"张三"、"李四"、"王五"、"马六"、"赵七"; 3)对集合进行遍历,分别打印...

    细说Java之常用集合类

    线性表,链表,哈希表是常用的数据结构,在进行Java 开发时,JDK 已经...了一系列相应的类来实现基本的数据结构。这些类均在java.util 包中。本文试图通过简单的 描述,向读者阐述各个类的作用以及如何正确使用这些类。

    【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识

    Java基本数据类型 string和包装类 final关键字特性 Java类和包 抽象类和接口 代码块和代码执行顺序 Java自动拆箱装箱里隐藏的秘密 Java中的Class类和Object类 Java异常 解读Java中的回调 反射 泛型 枚举类 Java注解...

    Java集合框架.pdf

    1、Collection接口 Collection接口是所有集合类的父接口,它定义了集合的基本操作,如添加、删除、遍历等。Collection接口有两个重要的子接口:List和Set。 2、List接口 List接口是有序集合,可以存储重复元素。它...

    史上最全Java面试题目大集合

    java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 3、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置...

    java常用工具类集合(也有转自他人的)

    基本涵盖常用的工具类集合,其中也综合了别人的示例及经验,希望大家可以互通有无,当然也需要持续更新。

    完整版 Java初级教程 Java语言程序设计 第8章 集合框架(共19页).ppt

    完整版 Java初级教程 Java语言程序设计 第2章 基本数据类型、数组和枚举(共19页).ppt 完整版 Java初级教程 Java语言程序设计 第3章 运算符、表达式、语句(共16页).ppt 完整版 Java初级教程 Java语言程序设计 第4...

    JAVA的常用类

    包装类基本知识 JAVA并不是纯面向对象的语言。Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的。但是我们在实际使用中经常需要将基本数据转化成对象,便于操作。比如:集合的操作中。例如...

    Java集合类——前言

    Java.util 包提供了集合类(也称容器类) Java集合主要有4个部分: List列表 Set集合 Map映射 工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections) 这个图乱的一批o_o … emmmm大致可以看出,上面有...

    JAVA–集合

    集合按照其存储结构可以分为两大类,单列集合java.util.Collection、双列集合java.util.Map 一、Collection Collection集合框架的体系 Collection常用功能 1.public boolean add(E e):把给定的对象添加到集合中 2....

    Java工程师面试复习指南

    Java基本数据类型 字符串和包装类 关键字最终特性 Java类和包 抽象类和接口 代码块和代码执行顺序 Java自动拆箱装箱里隐藏的秘密 Java中的Class类和Object类 Java异常 解读Java中的回调 反射 泛型 枚举类 Java注解和...

    java学习资料

    第一章Unix Day01:UNIX 介绍和基本指令 Day02:UNIX 指令(二)和VI 的使用第二章CoreJava Day01:java 的配置和编译 Day02:进制转换和补码运算 ...Day15:java 的集合类 Day16:java 的异常处理 Day17:Swing 介绍

    Java编程实践:10个实用例子助您提升技能正则表达式、文件操作、日期和时间处理、数据结构、集合类、接口和多态、递归、多线程编程

    9. 使用Java集合类实现队列:演示了如何使用Java集合类中的Queue接口来实现队列数据结构。 10. 多线程编程:创建和启动线程:展示了如何通过实现Runnable接口创建一个新线程,并演示了多线程编程的基本概念。

    完整版 Java初级教程 Java语言程序设计 全套PPT课件资源集合 共8个章节 含各类辅导资料.rar

    完整版 Java初级教程 Java语言程序设计 第2章 基本数据类型、数组和枚举(共19页).ppt 完整版 Java初级教程 Java语言程序设计 第3章 运算符、表达式、语句(共16页).ppt 完整版 Java初级教程 Java语言程序设计 第4...

Global site tag (gtag.js) - Google Analytics