- 浏览: 80761 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (66)
- Html (4)
- j2se (19)
- jsp (1)
- xml (0)
- eclipse (1)
- Linux (7)
- 心情 (13)
- javascript (2)
- db (1)
- javascript常用代码 (1)
- PHP (1)
- spring source (0)
- Spring (0)
- Ibatis (0)
- Memcached (0)
- Ehcache (0)
- freeMarker (0)
- velocity (0)
- UML (0)
- SQL (0)
- DB2 (0)
- Oracle (0)
- Mysql (0)
- Spring Security (0)
- Log4j (0)
- Tomcat (0)
- MongoDB (0)
- Solr (0)
- Spring CXF (0)
- Maven (0)
- JPbm (0)
- Design Pattern (0)
- JVM (0)
最新评论
-
greathjt:
watchpoint等等怎么设置?
eclipse debugger use
集合类
- Set
- HashSet
-
优点:
后台实现一个hash table 加速get和contains方法。后台使用数组保存
缺点:
默认大小为16, 如果超过则需要重新申请内存空间,大小为原来的两倍,并把原来的数据内容复制到
新的内存空间中。
线程不安全(需通过Collections.synchronizedList方法设置)
加入的元素顺序会因其内部的hash排序而改变
注:通常缺省的load factor 0.75较好地实现了时间和空间的均衡。增大load factor可以节省空间但相应的查找时间将增大,这会影响像get和put这样的操作。
-
- LinkedHashSet
-
优点:
后台实现一个hash table 加速get和contains方法。后台使用链表保存
缺点:
默认大小为16, 如果超过则需要重新申请内存空间,大小为原来的两倍,并把原来的数据内容复制到
新的内存空间中。
线程不安全(需通过Collections.synchronizedList方法设置)
加入的元素顺序会因其内部的hash排序而改变
注:通常缺省的load factor 0.75较好地实现了时间和空间的均衡。增大load factor可以节省空间但相应的查找时间将增大,这会影响像get和put这样的操作。
-
- TreeSet
-
优点:
通过一个HashMap来实现数据的保存,内部实现红黑树数据结构,使所有元素按升序保存。
提供高效的get和contains方法,保存操作的效率为log(n)
缺点:
默认大小为16, 如果超过则需要重新申请内存空间,大小为原来的两倍,并把原来的数据内容复制到
新的内存空间中(来自HashMap)。
线程不安全(需通过Collections.synchronizedList方法设置)
加入的元素升级排序而改变
注:treeset对元素有要求,必须实现Comparable接口或是Comparator 接口)
注:通常缺省的load factor 0.75较好地实现了时间和空间的均衡。增大load factor可以节省空间但相应的查找时间将增大,这会影响像get和put这样的操作。
-
- CopyOnWriteArraySet
- 优点:
针对于对Set操作的情况有很多变化时使用,优其是在高并发的情况不想使用同步控制锁时
缺点:
消耗比较大的资料,每次作更新操作时,都会重新Copy一块内存后,再做合并操作。
- 优点:
- HashSet
- List
- ArrayList
-
优点:
使用数组,提供快速的get,add和iterate方法,占用比较小的内存空间
缺点:
线程不安全(需通过Collections.synchronizedList方法设置)
insert和remove操作,非常慢(需要移动数组元素来实现)
当size超过时,需要新建一个较大的数据(默认大小是10,增量是 (size * 3)/2 + 1,
且把原来的数据都复制到新的上面)
-
- LinkedList
-
优点:
使用链表结构,提供快速的add, insert, remove方法,占用比较小的内存空间
缺点:
线程不安全(需通过Collections.synchronizedList方法设置)
get操作,非常慢(需要从head一级级遍历查找)
-
- Vector
- 优点:
线程安全。
缺点:
相对于ArrayList效率要低。拥有ArrayList的缺点。
- 优点:
- CopyOnWriteArrayList
- 优点:
针对于对List操作的情况有很多变化时使用,优其是在高并发的情况不想使用同步控制锁时
缺点:
消耗比较大的资料,每次作更新操作时,都会重新Copy一块内存后,再做合并操作。
- 优点:
- TreeList(apache commons-collections)提供
-
优点:
基于二叉数 提供比较快速的get, add,insert,iterate,remove方法。其中get,add和iterate方法比ArrayList稍慢一点。
缺点:
相对于ArrayList和LinkedList占比较多的内存空间
线程不安全(需通过Collections.synchronizedList方法设置)
-
- ArrayList
- Map
- ConcurrentHashMap
-
优点:
基于二叉数 提供比较快速的get, add,iterate方法。默认大小的16.
它是线程安全
缺点:
如果大小超过设定的大小时,效率会非常低。它会重新申请内存空间(原来空间的两倍),同时把原来的值复制到新内存空间上。
-
- ConcurrentHashMap
发表评论
-
Java中获取系统环境信息
2013-03-15 07:10 896将 getProperty(String) 方法使用的当前 ... -
Java 编程的动态性
2012-10-11 02:04 0Java 编程的动态性,第 1 部分: 类和类装入 ... -
读《重构》笔记
2009-02-12 01:08 830重构:改善即有代码 重构是一个过程,在不改变即有代码的外在行为 ... -
Object 源码
2008-12-21 12:24 1281Oject 源码: /* * @(#)Object.java ... -
thread 源码
2008-12-21 11:57 1051线程的状态:NEW , RUNNABLE , BLOCKED, ... -
java gc工作原理
2008-12-19 11:20 3015GC基本工作原理: java内 ... -
看《告诉你最真实的招聘潜规则》 有感
2008-12-18 09:31 709告诉你最真实的招聘潜规则 http://www.iteye.c ... -
时间管理
2008-12-17 14:20 541积极主动 ; 按计划行事 ; 任务细分----按任务分段- ... -
测试驱动开发 笔记
2008-12-14 17:14 710测试驱动开发是测试作为软件开发过程的中心,它要求在编写任何产品 ... -
oracle 基础
2008-12-04 12:54 1382解锁用户:alert user scott acco ... -
think pattern in java 笔记1
2008-11-25 00:40 936模式概念: 模式是帮助 ... -
Linux jdk 安装
2008-10-22 19:54 7741.下载成功后上传至服务器任意目录 ... -
Hibernate对象持久化方法分析
2008-10-19 11:46 1928Hibernate对象持久化方 ... -
编写好的面向对象代码
2008-10-13 11:47 807本文是java.net上的一篇 ... -
Java I/O中的数据编码转换
2008-10-13 11:34 1024作者:Flyingis JDK1.4开始便引入了ja ... -
???Java容器分析--Map
2008-10-13 11:31 836作者:Flyingis标准的Java类库中包含了几种类型的M ... -
Java容器分析--List和Set
2008-10-13 11:26 832作者:Flyingis ... -
Java I/O中的对象序列化
2008-10-13 11:17 779Java对象序列化将那些实现了Serializable接口 ... -
eclipse debugger use
2008-10-11 13:32 1791最基本的操作是:1, 首先在一个java文件中设断点,然后运行 ... -
java信徒齐(七)步走
2008-10-08 16:19 945Java信徒齐(七)步走: 0) ...
相关推荐
C++编程:建造集合类实训 本文将详细讲解C++编程中集合类的实现,包括集合类的定义、添加元素、删除元素、判断集合是否为空或满、判断元素是否包含在集合中、计算集合中的元素总数、输出集合中的元素、求两个集合的...
实现复数集合类 要求:1、实现两个类:集合类(Cassemblage )和复数类(Cmycomplex)。 2、输入:分别输入集合中元素个数和元素(实部和虚部)。 3、输出:按照复数模的大小从小到大输出,不考虑两个复数模相等...
Java 集合类线程安全 Java 集合框架是由 Java 平台标准版 1.2 引入的通用数据结构与算法框架。其灵活的面对对象设计受到了广大 Java 程序员的一致青睐,为 Java 平台的成熟奠定了坚实的基础。 线程安全不是一个...
Java 集合类详解 Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、...
自定义集合类则是开发者根据特定需求扩展Java集合框架的行为,以满足个性化或特定业务场景的功能需求。以下是对"java自定义集合类"这一主题的详细解释。 首先,Java集合框架包括接口(如List、Set、Map)和实现这些...
Java集合类是Java编程语言中一个非常重要的概念,它提供了数据结构和算法的实现,使得在处理一组对象时更加高效和灵活。Java集合框架包括接口(如List、Set、Queue等)和实现这些接口的类(如ArrayList、HashSet、...
Java集合类是Java编程语言中用于存储和管理对象的关键组件,它们构成了Java Collections Framework的核心。这个框架提供了一组高效、灵活的数据结构,使得开发者能够轻松地处理数据集合,而无需关心底层实现的复杂性...
在C#编程语言中,集合类是处理数据结构的关键组件,它们提供了比传统数组更灵活、功能更丰富的数据存储方式。本文将深入探讨C#中六种常用的集合类,包括它们的特点、用法以及与其他数据结构如数组的区别,旨在帮助...
MFC 集合类可以按形态和设计方案来分类。MFC 为三种类型的集合形态提供了类: 列表 数组 映射 MFC 还提供三种类型的设计方案: 不使用 C++ 模板。 使用由简单元素组成的基于 C++ 模板的集合。 使用由类型...
### Java集合类详解总结 在Java编程中,集合框架(Collection Framework)是处理一组对象的强大工具,它提供了标准的数据结构来存储和操作这些对象。Java集合框架主要包括`Collection`、`Set`、`List`、`Queue`、`...
集合类的框架为集合的实现者提供了大量的接口和抽象类,并对其中的某些机制给予了描述,例如,Iterator(迭代协议)。实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户...
根据给定的信息,本文将详细解释“泛型集合类的大致应用”,重点在于Java中的泛型集合类,如`ArrayList`、`HashMap`等,并结合实际代码示例进行讲解。 ### 泛型集合类概述 在Java编程语言中,集合框架提供了一组...
java集合类框架图
在IT行业中,集合类是数据结构的一个重要组成部分,它们提供了组织和操作对象的方便方式。在本案例中,我们关注的是一个名为"Animals"的集合类,它扩展了Java中的集合框架,允许通过关键字来索引Animal对象。此外,...
虽然题目中提到了集合类,但是在提供的内容中没有具体的集合类介绍。集合类在Java中是一个非常重要的组成部分,用于存储和操作一组对象。主要包括以下几种类型: - **List**:有序的集合,允许重复元素。 - **Set**...
本篇文章将深入探讨如何使用Java反射来获取一个类的所有属性、方法,并处理List集合类。 首先,让我们了解Java反射的基础概念。在Java中,`java.lang.Class`类代表运行时的类信息。我们可以使用`Class.forName()`...
### 泛型与集合类知识点总结 #### 一、泛型简介 - **定义**:泛型是Java SE 5.0引入的新特性,它允许程序员在编译时检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率。 - **作用**: - ...
本文将深入探讨Java集合类的汇总,包括List、Set和Map这三大核心接口及其实现类。 首先,让我们从List接口开始。List是一种有序的集合,允许有重复元素,并且支持通过索引来访问元素。ArrayList和LinkedList是List...
### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...
在编程领域,集合类是数据结构中的重要组成部分,主要用于存储一组不重复的元素。在Java中,`java.util.Set`接口及其子接口如`HashSet`、`TreeSet`等提供了整数集合的操作。本篇文章将深入探讨如何实现整数集合的...