`
acen.chen
  • 浏览: 157424 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java容器

阅读更多

l概念分类

Java 2将容器分为两个不同的概念: Collection Map

Collection: 提供对一组各自独立的元素的集合,List Set接口都继承自Collection接口。

Map:提供了一组key-value(键值对)

 

两种类型的主要区别在于:

Collection类型每个位置只持有一个元素(Object),比如List以加入到容器中的先后顺序来持有一个独立的的对象。Set中的对象不得重复,并且它会使用自己内部的一种排序机制。

Map类型所持有的是key-value(键值对)Map不接受重复的key

 

l容器分类

Java的所有容器类都实现了来自于List, Set, Map三种接口中的一个。我们可以通过Think in Java里面的类图来观察他们之间的关系: 

 

 

 

 

 

 

lList

List定义了一个线性表接口,Java2中的List实现方式分为两种:

ArrayList 是以array(数组)实现的线性表数据结构,其get(int index)方法的时间复杂度为O(1)。而其插入与删除操作的元素在中央时,其效率较低。因为每次都要对插入或删除位置(index)后面的array的进行数组拷贝。

LinkedList 是一个双向链表数据结构。其插入与删除操作效率要明显高于ArrayList

而且其随机查找的时间复杂度为O(n) (其实每次随机查找的次数要依赖于size/2到要查找的目标index之间的个数)其查找的效率要低于ArrayListO(1)

 

lSet

Set是集合类,该集合不能有“重复”对象存在,Java2Set实现方式分成两种:

HashSet 将持有对象映射到在哈希表中。  (JDK1.6的内部实现是 HashSet只是个适配器,其将适配对象HashMap适配成了Set接口)

TreeSet 将持有对象放入RBTree(红黑树)中。(TreeSet也将适配对象TreeMap适配成了Set接口)

 

l Map

Map是一组key-value(键值对)集合,其中的key()不能重复。

HashMap  key对象生成hashcode然后映射到Entry<K,V>[]数组中(JDK1.6中其hashtable默认大小为16,在持有对象数量查过默认大小之后就会重新生成一个更大HashTable,然后将原有持有的对象逐个散列到新哈希表中)。其get(Object key) 最佳时间复杂度为O(1),最坏则为O(n)。但就查找的平均效率来说是要高于TreeMap

TreeMap  key对象为关键值存放在RBTree(红黑树)中。其get(Object key)方法的平均时间复杂度为O(logn)

 

l Iterator

Iterator迭代器实现对: 哈希表HashMap,红黑树TreeMap,链表LinkedList,动态数组ArrayList等数据结构的迭代。

所有的Collection都可以获得一个Iterator对象用来遍历自己的所持有的对象。

分享到:
评论

相关推荐

    java容器详细解析

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

    Java容器总结

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

    java容器学习心得

    ### Java容器学习心得详解 在Java编程中,容器(Containers)是存储和操作对象集合的重要工具,主要包括集合(Collections)和映射(Maps)。本文将深入解析Java容器的关键概念、特性以及不同容器类型的应用场景。 ...

    JAVA容器对象整理

    这篇博客"JAVA容器对象整理"可能涵盖了关于Java中的不同容器类、接口以及它们的使用方式。在这里,我们将深入探讨一些核心的Java容器知识点。 1. **ArrayList与LinkedList** - `ArrayList`是一个基于数组实现的...

    Java 容器.pdf_电子版pdf版

    Java 容器详解 Java 容器是 Java 语言中的一种集合类库,主要包括 Collection 和 Map 两种类型。Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。 Collection Collection 是一种集合接口...

    java容器类 是初学者很好的学习材料

    Java容器类是Java编程语言中不可或缺的一部分,它们主要用于存储和管理对象。这些类和接口位于`java.util`包中,为开发者提供了灵活的数据结构和数据操作方式。在Java中,容器类主要分为两大类:Collection和Map。 ...

    JAVA容器效率深度分析List

    在Java编程中,容器是用于...总之,理解并掌握这些Java容器的特性和效率差异,能够帮助我们在实际开发中做出更合适的选择,提高程序的性能和可维护性。在具体应用时,还需要结合业务需求和性能测试,才能做出最佳决策。

    JAVA容器讲解.pdf

    Java容器讲解PPT,Collection Map(HashMap TreeMap LinkedHashMap) List (ArrayList LinkedList Vector) Set (HashSet TreeSet LinkedHashSet)

    JAVA容器知识积累

    Java容器是Java编程中至关重要的一个部分,它们用于存储、管理和操作对象集合。在这个主题下,我们将深入探讨Java中的核心容器类,包括数组、List、Set和Map,以及它们各自的特点和使用场景。 1. **数组**:数组是...

    Java容器实现图书管理

    题目摘要:考虑下列的信息系统。出版社需要记录下列书籍和作者的信息: P1: 每一本书有一个title,一个description和一个ISBN number 还有 出版的日期(包括年/月) P2: 每一本书有1个或多个作者。...

    Java容器起源

    ### Java容器起源与JSP容器背景解析 #### 容器技术概述 容器技术在现代IT领域扮演着极其重要的角色,特别是在云计算和微服务架构中。本文将深入探讨容器技术的起源,尤其是针对Java环境中JSP容器的发展历程及其...

    JAVA容器归纳总结_01版.mmap

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

    JAVA 容器用法详解

    JAVA 容器用法详解,关于JAVA容器的详细讲解

    Java容器简要介绍

    Java容器是Java编程中不可或缺的一部分,它们主要用于存储和管理对象,提供了一种高效且灵活的方式来组织和操作数据。本文将简要介绍Java容器的主要概念、API以及常用的容器类。 首先,Java容器分为两大主要类别:...

    JAVA 容器类应用

    Java容器类是Java集合框架的重要组成部分,它们提供了一种存储、管理和操作对象的方式。在Java中,容器类包括数组、列表、队列、集、映射等数据结构,它们为开发者提供了灵活的数据处理能力。本篇文章将深入探讨Java...

    JAVA容器总结

    后缀为.mmap的思维导图,总结了JAVA容器的常见类

    java容器介绍及应用

    Java容器是Java编程中至关重要的部分,它们是用于存储、管理和操作对象的工具。Java集合框架,包括List、Set、Map、ArrayList、LinkedList等,构成了Java容器的主要元素。以下是对这些概念的详细解释: 1. **集合...

    Java容器学习笔记:容器概览,容器中的设计模式,容器源码分析 - List,容器源码分析 - Map,容器源码分析 - 并发容

    Java容器学习笔记: 容器概览, 容器中的设计模式, 容器源码分析 - List, 容器源码分析 - Map, 容器源码分析 - 并发容 Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,...

Global site tag (gtag.js) - Google Analytics