- 浏览: 233465 次
- 性别:
- 来自: 我也来自火星?
文章分类
最新评论
-
chengUFO:
Test tes = c.newInstance();执行以上 ...
自定义ClassLoader -
lliiqiang:
资料太少了,伪造客户端和事先标准以外数据为攻击,其它的是bug ...
Openlaszlo调用JavaRPC和JAVA类通信 -
tianshaojie:
楼主,为什么我安装你的方法建立工程后,访问就出错,我用的是ta ...
Tapestry4入门 -
panshunchang:
发帖过程这么辛苦,还要回答一大堆问题,受不了了
[常用代码整理]JAVA反射 -
活靶子:
生成一个join的SQL语句
SELECT items.* F ...
Better looking URLs with friendly_id
发一个完全体力活的帖子,是对JDK的中Collection接口的总结,说明全部摘自JDK6.0。
Map接口:
|
+ -- WeakHashMap: 以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条
| 目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终
| 止,然后被回收。丢弃某个键时,其条目从映射中有效地移除,因此,该类的行为与其他的 Map 实现有所不同。此实现
| 不是同步的。
|
+ -- TreeMap:该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的
| 构造方法。此实现不是同步的。
|
+ -- HashMap:基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了
| 非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺
| 序恒久不变。此实现不是同步的。
|
+-- SortedMap: 进一步提供关于键的总体排序 的 Map。该映射是根据其键的自然顺序进行排序的,或者根据通常在创建有
序映射时提供的 Comparator 进行排序。对有序映射的 collection 视图(由 entrySet、keySet 和 values 方法返回
)进行迭代时,此顺序就会反映出来。要采用此排序方式,还需要提供一些其他操作(此接口是 SortedSet 的对应映
射)。
Collection接口:
|
+ -- Set接口:一个不包含重复元素的 collection。更正式地说,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并
| | 且最多包含一个 null 元素。正如其名称所暗示的,此接口模仿了数学上的 set 抽象。
| |
| + -- HashSet:此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;
| | 特别是它不保证该顺序恒久不变。此类允许使用 null 元素。此类为基本操作提供了稳定性能,此实现不是同
| | 步的。
| |
| + -- LinkedHashSet:具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。此实现与 HashSet 的不同之外在
| | 于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,即按照将元素插入到 set
| | 中 的顺序(插入顺序)进行迭代。注意,插入顺序不 受在 set 中重新插入的 元素的影响。此实现不是同步
| | 的。
| |
| + -- TreeSet:基于 TreeMap 的 NavigableSet 实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时
| 提供的 Comparator 进行排序,具体取决于使用的构造方法。此实现为基本操作(add、remove 和 contains)
| 提供受保证的 log(n) 时间开销。此实现不是同步的。
|
+ -- List接口:有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户
| 可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
|
+ -- ArrayList:List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。
| 除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于
| Vector 类,除了此类是不同步的。)每个 ArrayList 实例都有一个容量。该容量是指用来存储列表元素的数
| 组的大小。它总是至少等于列表的大小。随着向 ArrayList 中不断添加元素,其容量也自动增长。并未指定增
| 长策略的细节,因为这不只是添加元素会带来分摊固定时间开销那样简单。此实现不是同步的。
|
+ -- LinkedList:List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实
| 现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方
| 法。这些操作允许将链接列表用作堆栈、队列或双端队列。提供先进先出队列操作(FIFO)。此实现不是同步的。
|
+ -- Vector:Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是
,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。此实现是同步的
。
的确,自己也是在做一个缓存的设计时,发现这些接口确实很精髓,在使用的时候,需要了解一些细节问题。
我上面已经说过了,仁者见仁,智者见智,觉得你觉得很一般,你可以回答我上面的几个问题,或者,自己去实现实现几个接口类试试,接口类实用时是很简单,但真正要用好,确并不是易事。
嗯,JAVA的集合接口,可以说是JDK中最博大精深的几个类了,想要用好确实不简单。所以做了这样的一个总结,混个眼熟,呵呵。
只是最常用,用的多而已 , 能称得上最博大精深么??
这个只能说是仁者见仁,智者见智了,可能你掌握得好,所以觉得没什么,不过像我这样的大部分新手来说,还不是很了解内部的东西,比如说要设计一个缓存,用哪一个Map?什么时候用ArrayList什么时候用Vector(虽然网上已经有很多这样的文章了),但为什么要这样,里面有个负载因子,是什么?怎么实现的?有什么好处?应该在一些开源框架中,说某个类对于对于性能方面做了优化(使用了某个集合类),那么它是如何优化的?
嗯,JAVA的集合接口,可以说是JDK中最博大精深的几个类了,想要用好确实不简单。所以做了这样的一个总结,混个眼熟,呵呵。
只是最常用,用的多而已 , 能称得上最博大精深么??
嗯,JAVA的集合接口,可以说是JDK中最博大精深的几个类了,想要用好确实不简单。所以做了这样的一个总结,混个眼熟,呵呵。
不是JDK6.0对Collection做了修改,是我上面的那些说明,全部是在JDK6.0的API上面的,呵呵,没说清楚,让大家以为JDK6.0对Collection做了修改,不好意思
JDK6.0 对collections框架有做修改吗?
我知道的,这样的帖子实际上网上已经非常多了,不过自己再写一遍,更加加深印象嘛。
Map接口:
|
+ -- WeakHashMap: 以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条
| 目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终
| 止,然后被回收。丢弃某个键时,其条目从映射中有效地移除,因此,该类的行为与其他的 Map 实现有所不同。此实现
| 不是同步的。
|
+ -- TreeMap:该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的
| 构造方法。此实现不是同步的。
|
+ -- HashMap:基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了
| 非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺
| 序恒久不变。此实现不是同步的。
|
+-- SortedMap: 进一步提供关于键的总体排序 的 Map。该映射是根据其键的自然顺序进行排序的,或者根据通常在创建有
序映射时提供的 Comparator 进行排序。对有序映射的 collection 视图(由 entrySet、keySet 和 values 方法返回
)进行迭代时,此顺序就会反映出来。要采用此排序方式,还需要提供一些其他操作(此接口是 SortedSet 的对应映
射)。
Collection接口:
|
+ -- Set接口:一个不包含重复元素的 collection。更正式地说,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并
| | 且最多包含一个 null 元素。正如其名称所暗示的,此接口模仿了数学上的 set 抽象。
| |
| + -- HashSet:此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;
| | 特别是它不保证该顺序恒久不变。此类允许使用 null 元素。此类为基本操作提供了稳定性能,此实现不是同
| | 步的。
| |
| + -- LinkedHashSet:具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。此实现与 HashSet 的不同之外在
| | 于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,即按照将元素插入到 set
| | 中 的顺序(插入顺序)进行迭代。注意,插入顺序不 受在 set 中重新插入的 元素的影响。此实现不是同步
| | 的。
| |
| + -- TreeSet:基于 TreeMap 的 NavigableSet 实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时
| 提供的 Comparator 进行排序,具体取决于使用的构造方法。此实现为基本操作(add、remove 和 contains)
| 提供受保证的 log(n) 时间开销。此实现不是同步的。
|
+ -- List接口:有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户
| 可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
|
+ -- ArrayList:List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。
| 除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于
| Vector 类,除了此类是不同步的。)每个 ArrayList 实例都有一个容量。该容量是指用来存储列表元素的数
| 组的大小。它总是至少等于列表的大小。随着向 ArrayList 中不断添加元素,其容量也自动增长。并未指定增
| 长策略的细节,因为这不只是添加元素会带来分摊固定时间开销那样简单。此实现不是同步的。
|
+ -- LinkedList:List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实
| 现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方
| 法。这些操作允许将链接列表用作堆栈、队列或双端队列。提供先进先出队列操作(FIFO)。此实现不是同步的。
|
+ -- Vector:Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是
,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。此实现是同步的
。
评论
19 楼
cglxa
2007-05-18
顶一下,不错的体力活啊!
18 楼
rainlife
2007-05-07
Godlikeme 写道
支持下楼主,
一般认为,对这些接口的了解程度是java基础的一个重要方面。
一般认为,对这些接口的了解程度是java基础的一个重要方面。
的确,自己也是在做一个缓存的设计时,发现这些接口确实很精髓,在使用的时候,需要了解一些细节问题。
17 楼
Godlikeme
2007-05-07
支持下楼主,
一般认为,对这些接口的了解程度是java基础的一个重要方面。
一般认为,对这些接口的了解程度是java基础的一个重要方面。
16 楼
rainlife
2007-05-07
wandou 写道
就几个集合接口,就博大精深了?太会yy了吧?
我上面已经说过了,仁者见仁,智者见智,觉得你觉得很一般,你可以回答我上面的几个问题,或者,自己去实现实现几个接口类试试,接口类实用时是很简单,但真正要用好,确并不是易事。
15 楼
wandou
2007-05-07
就几个集合接口,就博大精深了?太会yy了吧?
14 楼
pipi2142001
2007-04-26
支持原创!!
13 楼
rainlife
2007-04-16
cozone_柯中 写道
rainlife 写道
qingjian 写道
要想使用好这些接口 不是一个简单的事情
嗯,JAVA的集合接口,可以说是JDK中最博大精深的几个类了,想要用好确实不简单。所以做了这样的一个总结,混个眼熟,呵呵。
只是最常用,用的多而已 , 能称得上最博大精深么??
这个只能说是仁者见仁,智者见智了,可能你掌握得好,所以觉得没什么,不过像我这样的大部分新手来说,还不是很了解内部的东西,比如说要设计一个缓存,用哪一个Map?什么时候用ArrayList什么时候用Vector(虽然网上已经有很多这样的文章了),但为什么要这样,里面有个负载因子,是什么?怎么实现的?有什么好处?应该在一些开源框架中,说某个类对于对于性能方面做了优化(使用了某个集合类),那么它是如何优化的?
12 楼
fj_opensky
2007-04-16
好,支持你!不容易!
11 楼
cozone_柯中
2007-04-16
rainlife 写道
qingjian 写道
要想使用好这些接口 不是一个简单的事情
嗯,JAVA的集合接口,可以说是JDK中最博大精深的几个类了,想要用好确实不简单。所以做了这样的一个总结,混个眼熟,呵呵。
只是最常用,用的多而已 , 能称得上最博大精深么??
10 楼
rainlife
2007-04-16
qingjian 写道
要想使用好这些接口 不是一个简单的事情
嗯,JAVA的集合接口,可以说是JDK中最博大精深的几个类了,想要用好确实不简单。所以做了这样的一个总结,混个眼熟,呵呵。
9 楼
qingjian
2007-04-16
要想使用好这些接口 不是一个简单的事情
8 楼
rainlife
2007-04-15
引用
JDK6.0 对collections框架有做修改吗?
不是JDK6.0对Collection做了修改,是我上面的那些说明,全部是在JDK6.0的API上面的,呵呵,没说清楚,让大家以为JDK6.0对Collection做了修改,不好意思
7 楼
spiritfrog
2007-04-15
非常实在啊,加入收藏了。以后用到cellection接口和Map接口的时候看看就好了。
但没看到jdk6里面这些实现的不同啊。
但没看到jdk6里面这些实现的不同啊。
6 楼
eyejava
2007-04-14
引用
发一个完全体力活的帖子,是对JDK的中Collection接口的总结,说明全部摘自JDK6.0。
JDK6.0 对collections框架有做修改吗?
5 楼
muky
2007-04-14
不错的总结..
4 楼
step21
2007-04-13
呵呵,我每次在使用collection的时候都要去查一下api和网上关于这些的总结,用好这个包还真不容易的.
3 楼
rainlife
2007-04-13
dada 写道
tianxinet写过类似的帖子...
我知道的,这样的帖子实际上网上已经非常多了,不过自己再写一遍,更加加深印象嘛。
2 楼
dada
2007-04-13
tianxinet写过类似的帖子...
1 楼
freej
2007-04-13
体力活做的不错,呵呵
发表评论
-
vim补全
2009-10-13 16:42 0引用VIM自动不齐不需要特殊配置,只需要打开 filetype ... -
一次小项目的思考
2009-08-20 23:11 3454最近的一个项目,四个 ... -
IntelliJ Idea插件Jetty Integration恢复开发
2009-08-19 14:34 3585今天在je上面看到了一条新闻 Google 选择 Jetty, ... -
PowerDesigner 中将Comment(注释)及Name(名称)内容互相COPY的VBS代码
2009-07-30 14:05 2259在用PowerDesigner时.常常在NAME或Commen ... -
使用VisualSVN Server构建自己的版本库
2008-12-16 16:13 1706VisualSVN Server是用于Subversion管理 ... -
在laszlo方法中使用参数
2006-03-22 14:56 967<canvas debug="true&quo ... -
openlasz入门---openlaszlo环境的建立
2006-04-11 22:09 1701关于openlaszlo的介绍网站上面也蛮多了,所以,在这里也 ... -
Openlaszlo调用JavaRPC和JAVA类通信
2006-04-20 10:31 1839JavaRPC允许Laszlo客户端远程调用服务端的JAVA类 ... -
使用 JavaMail 收发邮件,解决中文附件问题
2007-02-07 11:22 3848几天来一直在开发一个项目,其中一部分需要用 JavaMail ... -
FCKEditor使用说明
2007-02-17 13:53 14991. FCKeditor 介绍 FCKeditor 这个开源的 ... -
一个不错的开源数据库H2
2007-02-17 14:10 1498H2是一个采用Java开发开源的嵌入式SQL数据库。它支持集群 ... -
JAVA获取系统当前的用户
2007-03-02 17:15 6733public class Test { ... -
FCKeditor插件开发
2007-03-23 21:45 2964FCKeditor插件开发建立 ... -
Idea8试用
2008-03-23 21:56 1669刚刚在新闻频道看到关于Idea的新闻,对它的javascrip ... -
HtmlUnit测试页面
2008-03-02 22:29 9887HtmlUnit简介:引自 www.open-open.com ... -
java的数据结构
2007-11-11 19:04 1492线性表,链表,哈希表是常用的数据结构,在进行Java开发时,J ... -
P6SPY监控数据库性能
2007-11-11 18:51 2931P6SPY监控数据库性能 P6SPY通过对JDBC API的 ... -
Idea7.0注册机
2007-10-20 22:55 3235Idea7.0注册机 -
[转]普元JS验证
2007-09-16 22:25 1688* -------------------------- ... -
Apache和Subversion搭建版本控制环境
2007-08-03 23:40 15361. 安装Apache2.0.59(Apache 2.2.4和 ...
相关推荐
8.javaCollection接口.zip8.javaCollection接口.zip8.javaCollection接口.zip8.javaCollection接口.zip8.javaCollection接口.zip8.javaCollection接口.zip8.javaCollection接口.zip8.javaCollection接口.zip8.java...
### Java集合框架Collection接口详解 #### 一、Java集合框架简介 Java集合框架(Java Collection Framework)是Java标准库中的一个重要组成部分,它提供了一系列用于存储和操作数据集合的接口和实现类。这些接口和...
### Collection接口中的常用方法 在Java编程语言中,`Collection`接口是集合框架的基础,它定义了一组对象的无序组合。此接口提供了对集合的基本操作,并被其他具体集合类如`ArrayList`、`LinkedList`等所实现。...
Java 泛型、Collection 接口 Java 泛型是 Java 语言中的一种重要概念,它允许我们在编写代码时不必关心具体的数据类型,而是在使用时确定具体的数据类型。泛型在定义时不具体,使用时才变得具体。 Collection 接口...
在Java编程语言中,`Collection`接口是所有集合框架的核心,它是...总结,`Collection`接口提供的静态方法极大地增强了我们在处理Java集合时的能力。理解并熟练运用这些方法,能够帮助我们编写出更加高效和灵活的代码。
在本总结中,我们将深入探讨Collection接口以及其主要子接口和实现类,通过实例来帮助理解它们的特性和使用场景。 1. **Collection接口**:Collection是所有单元素容器的根接口,它定义了集合的基本操作,如添加...
在Java编程语言中,集合框架是处理对象数组的重要工具,其中`Collection`接口和`List`接口是核心组件。本教程将重点介绍这两个接口以及如何使用它们来实现学生选课系统中的“增、删、改、查”操作。 首先,`...
3. Collection接口的子接口,如Set接口(不允许重复元素)和List接口(元素有序并可重复)。 接下来,我们转向“2-集合框架002-List接口-1080P 高清-AVC.mp4”。List接口是Collection的一个子接口,它增加了索引...
总结起来,本教程系列涵盖了Collection接口的基础知识,包括队列、双端队列、优先队列以及HashSet的具体使用。通过理论讲解和实例演示,学习者将能够深入理解Java集合框架的核心概念,并能熟练地在实际编程中运用...
集合框架001-Collection接口21-23”表明我们将探讨的是集合框架中的Collection接口,以及与之相关的HashMap和TreeMap类。描述中提到的“21-23”可能是指三个视频教程的章节,分别深入分析了HashMap的源码、HashMap的...
7. **多态与接口**:Collection接口的实现类,如ArrayList、LinkedList等,都是多态的,这意味着你可以声明一个Collection类型的引用,然后将其指向任意实现了Collection接口的具体类的对象,从而实现对不同集合类的...
#### 11-2 Collection接口 **Collection接口**作为Java集合框架的基础部分,在Java编程中扮演着非常重要的角色。它定义了一系列用于处理或操作集合中元素的方法,是所有集合类的根接口。 ### 11.2 Collection接口...
本文将深入探讨`Collection`接口,它是所有类集的基础,以及与之相关的Java类和接口。 `Collection`接口位于`java.util`包下,是Java集合框架的顶级接口。它定义了存储、操作和遍历对象的基本方法。`Collection`...
集合框架001-Collection接口10-12"的主题聚焦于Collection接口及其相关的概念,这包括链表、Vector和Stack的深入分析。下面将详细阐述这些知识点。 **Collection接口**: Collection是Java集合框架中最基础的接口,...
集合框架001-Collection接口6-9"中涉及的关键知识点,包括`Collection`接口、`ArrayList`源码分析、`Comparator`接口以及`Comparable`接口,以及`Arrays`类中的算法。 首先,`Collection`接口是Java集合框架的根...
Java中的Collection接口和主要实现的类 Collection接口是Java中最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些...
本课程主要聚焦在集合框架中的`Collection`接口,这是所有单值集合的顶级接口,是Java集合框架的基石之一。下面将详细解析`Collection`接口以及与其相关的知识点。 首先,我们来谈谈`Collection`接口。它是`java....
Collection接口作为集合框架的基础,定义了许多用于管理和操作数据的基本方法。下面将详细介绍这些方法及其在实际开发中的应用。 1. `public boolean add(E e)`:此方法用于向集合中添加一个元素。如果集合允许该...
首先,Collection是Java集合框架的核心接口之一,它是单列集合的主要根接口。Collection集合类继承结构图向我们展示了Collection接口与其他接口和类之间的关系。 在Java集合框架中,Collection接口位于顶层,它直接...
### Java之Collection总结 #### 一、集合简介与遍历方式 ##### 1. 集合的作用与定义 集合是一种特殊的数据结构,主要用于存储和管理对象。在Java中,集合是一个容器对象,用于存储一系列对象的引用。集合提供了一...