`
zhhxxx
  • 浏览: 30534 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Java容器总结与比较

阅读更多
Java容器总结:

这图,我以前保存在QQ的"我的资料"中。

Collection
├List
│ ├LinkedList
│ ├ArrayList
│ └Vector
│  └Stack
└Set
   └HashSet
Map
├Hashtable
├HashMap
└WeakHashMap
Iterator
└ListIterator

一、集合的层次结构:
collection是集合接口 
        |————set子接口:无序,不允许重复。 
        |————list子接口:有序,可以有重复元素。 
  
区别:collections是集合类 
set和list对比: 
set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。 
list:和数组类似,list可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。    
set和list具体子类: 
set 
|————hashset:以哈希表的形式存放元素,插入删除速度很快。    
list 
|————arraylist:动态数组 
|————linkedlist:链表、队列、堆栈。 
  
array和java.util.vector 
vector是一种老的动态数组,是线程同步的,效率很低,一般不赞成使用。 
二、迭代器的层次结构:
iterator是获取集合中元素的过程,实际上帮助获取集合中的元素。 
迭代器代替了 java collections framework 中的 enumeration。迭代器与枚举有两点不同: 
迭代器允许调用方利用定义良好的语义在迭代期间从迭代器所指向的集合移除元素。  
方法名称得到了改进。  
iterator仅有一个子接口listiterator,是列表迭代器,允许程序员按任一方向遍历列表、迭代期间修改列表,并获得迭代器在列表中的当前位置。listiterator 没有当前元素;它的光标位置 始终位于调用 previous() 所返回的元素和调用 next() 所返回的元素之间。在长度为 n 的列表中,有 n+1 个有效的索引值,从 0 到 n(包含)。
三、Map的层次结构:
map将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值。 
map接口是dictionary(字典)抽象类的替代品。 
map 接口提供三种collection 视图,允许以键集、值集合或键-值映射关系集的形式查看某个映射的内容。映射的顺序 定义为迭代器在映射的 collection 视图中返回其元素的顺序。某些映射实现可明确保证其顺序,如 treemap 类;某些映射实现则不保证顺序,如 hashmap 类。  
有两个常见的已实现的子类: 
hashmap:基于哈希表的 map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,hashmap 类与 hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。  
treemap:它实现sortedmap 接口的基于红黑树的实现。此类保证了映射按照升序顺序排列关键字,根据使用的构造方法不同,可能会按照键的类的自然顺序 进行排序(参见 comparable),或者按照创建时所提供的比较器进行排序。  
hashtable:此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。
四、线程安全:
在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的。在jdk1.2之后,就出现许许多多非线程安全的类。 
下面是这些线程安全的同步的类: 
vector:就比arraylist多了个同步化机制(线程安全)。 
statck:堆栈类,先进后出。 
hashtable:就比hashmap多了个线程安全。 
enumeration:枚举,相当于迭代器。 
除了这些之外,其他的都是非线程安全的类和接口。 
线程安全的类其方法是同步的,每次只能一个访问。是重量级对象,效率较低。对于非线程安全的类和接口,在多线程中需要程序员自己处理线程安全问题。 
五、其他一些接口和类:
dictionary和hashtable类: 
dictionary提供键值映射的功能,是个抽象类。一般使用它的子类hashtable类。遍历hashtable类要用到枚举。  
properties类 
properties 继承于 hashtable,properties 类表示了一个持久的属性集。properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。一般可以通过读取properties配置文件来填充properties对象。
分享到:
评论
1 楼 夜VS神 2010-12-20  

相关推荐

    Java容器总结

    在IT领域,Java容器是一个非常重要的概念,尤其对于软件开发者来说,它们是理解和构建高效、可扩展的应用程序的关键。本文将深入探讨Java容器,并结合标签“源码”和“工具”,从源码层面和实用工具角度来分析这些...

    JAVA容器总结

    Java容器,主要包括集合框架中的Set、List、Map和Queue接口,它们是Java编程中处理数据的重要工具。下面将对这些接口及其常见的实现类进行详细解释。 1. **Set接口**: Set接口代表一个无序且不允许重复元素的集合...

    java类容器总结文档

    Java 类容器是 Java 编程中非常重要的一个概念,它主要指的是 Java 集合框架中的各种类,如 ArrayList、LinkedList、HashSet、HashMap 等,这些类用于存储和管理对象。本文将深入探讨这些常用的Java类容器,帮助...

    java容器详细解析

    Java容器详细解析 Java容器是一种基本的数据结构,用于存储和管理对象。Java容器主要分为两大类:Collection和Map。 Collection Collection是一个独立元素的序列,这些元素都服从一条或多条规则。Collection接口...

    JAVA容器归纳总结_01版.mmap

    对于java容器的一些归纳整理,顺着思维导图能方便自己的理解,提高运用能力

    java容器大总结思维导图

    这个PDF中总结了java中最常用的各种容器,其中有相应的图片源码可供查看,并且提供了各个容器常用的方法,可以说真正看懂这个思维导图,你对容器的理解一定已经站在了很高的高度,值得小伙伴们细细品味,慢慢学习,...

    Java 常见并发容器总结

    Java 常见并发容器总结 JDK 提供的这些容器大部分在 `java.util.concurrent` 包中。 - **`ConcurrentHashMap`** : 线程安全的 `HashMap` - **`CopyOnWriteArrayList`** : 线程安全的 `List`,在读多写少的场合性能...

    JAVA容器的作用和概览

    Java容器(集合框架)是Java编程中极其重要的部分,它提供了多种数据结构,如列表、集合和映射,以适应不同场景下的数据存储和处理需求。通过合理选择和使用不同的容器,可以优化代码的性能和可维护性。同时,了解和...

    java 技术总结.--java 技术

    综上所述,Java技术总结涵盖了语言基础、面向对象、异常处理、集合框架、I/O与网络、多线程、JVM、标准库、框架以及最新技术趋势等多个方面,为学习和掌握Java提供了全面的指导。通过深入学习和实践,可以成为一名...

    java容器类知识点详细总结

    Java 容器类知识点详细总结 Java 容器类是 Java 语言中的一种非常重要的数据结构,用于存储和管理对象的集合。Java 容器类可以分为四个主要部分:Collection、Map、Iterator 和子接口。 容器接口 容器接口是 Java...

    Java泛型与容器详细笔记.pdf (带书签)

    这个示例演示了泛型的使用以及Java容器的灵活用法。 总结来说,Java泛型与容器详细笔记提供了关于如何使用Java中的泛型和容器类的深入理解,涵盖了Java集合框架的核心组件,泛型的类型安全机制,以及一些提高开发...

    Java课程总结.pdf

    从给出的内容片段来看,该文件“Java课程总结.pdf”包含了Java编程语言的多个核心概念和知识点。下面是对这些概念和知识点的详细总结: 1. Java基础语法 - 关键字:Java中的关键字,如`class`, `extends`, `...

    java面试总结文档

    ### Java面试总结文档知识点解析 #### 一、Java基础篇 - 概念 ##### 1. Linux概述 - **起源与发展**:Linux是由芬兰学生Linus Torvalds于1991年开始创建的一个开源操作系统内核。随着社区的不断发展与完善,Linux...

    java容器

    总结,Java容器是一个广泛的概念,涵盖了从基本的集合框架到复杂的框架和服务提供者。理解并熟练掌握不同类型的Java容器,对于提升Java编程效率和代码质量至关重要。在实际开发中,选择合适的容器类型并利用其特性,...

    java知识体系总结

    Java知识体系总结 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年推出。它以其“一次编写,到处运行”的特性闻名,适用于开发跨平台的应用程序,包括桌面应用、企业...

    黑马程序员入学Java精华总结

    ### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...

    JAVA基础阶段总结

    ### JAVA基础阶段总结 #### 一、JAVA简介与特点 **JAVA** 是一种高级编程语言,它被设计用于编写能够跨平台运行的应用程序。由 Sun Microsystems 公司于1995年推出,并在2010年被 Oracle 公司收购。JAVA 技术以其...

    java学习总结.doc

    以下是对Java学习的详细总结: 一、简介 Java由James Gosling于1995年在Sun Microsystems公司开发,最初设计用于电视顶盒,但后来因其“一次编写,到处运行”(Write Once, Run Anywhere)的理念,迅速被广泛应用在...

Global site tag (gtag.js) - Google Analytics