`
leiquanrui
  • 浏览: 16046 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java Collection 中 List,Set,Map的区别

阅读更多

Collection 为Collection层次结构 中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。

 

1.  List:List可以理解为一组有序的对象的集合。也就是它保证list中中对象元素的顺序。

  •    ArrayList:类似于数组,可以进行随机访问和存储,也可以进行迭代。但在ArrayList的中间插入和删除一些对象效率会较低,如果在List中间要多次操作数据,可以考虑使用LinkedList代替。
  •    LinkedList:是List接口的双向链接列表实现,因此可以高效地在中间插入或删除对象。此外,LinkedList也实现了Queue和DeQueue(双向队列),所以LinkedList也可以作为队列使用,同时LinkedList也实现了pop和push方法,所以LinkedList实际上也可以作为栈使用。因为是链表实现,所以随机访问也会比较慢(使用ArrayList取代)。 此外,LinkedList是不同步的。

2.  Set:Set为一个不包含重复元素的 collection,其判断重复的标准为元素的equels方法的返回。Set通常拥有自身的排序,它不保证按插入顺序排序。

  • HashSet:利用了HashMap的实例来实现Set,其实就是HashMap中的Value 的Set。存入HashSet的对象必须定义其hashCode()。由于HashMap是不同步的,所以HashSet也是不同步的。其迭代性能取决于HashMap的容量,因此选择适合的容量很重要。
  • TreeSet:以树的数据结构存储的Set。基于 TreeMapNavigableSet 实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序(TreeSet 实例使用它的 compareTo(或 compare)方法对所有元素进行比较),具体取决于使用的构造方法。也就是说,TreeSet里面的元素都是有序的,排序方法根据构造时指定。TreeSet为基本操作(addremovecontains)提供受保证的 log(n) 时间开销。也是不同步的的。
  • LinkedHashSet:具有HashSet的查询速度,并使用链表来记录和维护元素插入的顺序,具体是维护着一个运行于所有条目的双重链接列表。LinkedHashSet由于增加了维护链接列表的开支,其性能很可能会比 HashSet 稍逊一筹,不过,由于有链表的支持,其迭代的性能只与set中的元素个数有关,而HashSet是与其容量有关。

3.  Map:相当于一种Key-》Value映射的集合。Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。某些映射实现可明确保证其顺序,如 TreeMap 类;另一些映射实现则不保证顺序,如 HashMap 类。

  • HashMap:基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。此实现不保证顺序。
  • HashTable:与HashMap基本相同,是HashMap的同步版本。其实是HashTable先有的,后来才出了HashMap。
  • LinkedHashMap:Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序。但通过构造方法也可以改变其排序规则,有插入顺序和最近最少使用(LRU)两种。
  • TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。此实现为 containsKeygetputremove 操作提供受保证的 log(n) 时间开销。
  • WeakHashMap:弱键Map,即如果没有Map之外的引用指向某个“键”,则此键可以被垃圾回收。
  • IdentityHashMap:使用==代替equals()对键进行比较操作的HashMap。
分享到:
评论

相关推荐

    Java集合Collection、List、Set、Map使用详解

    本文将深入解析Java集合中的Collection、List、Set和Map,包括它们的使用方法、实现原理以及如何进行排序。 ### 集合框架概述 1.1.1 容器简介 容器是Java集合框架的基础,它是一个可以存储多个对象的容器,提供了...

    Collection List Set Map 区别记忆

    其中,`Collection`、`List`、`Set`和`Map`是四大基本接口,它们各自代表了一种特定的数据结构,有着不同的特性和用途。下面我们将详细探讨这些接口的区别及其相关知识点。 首先,`Collection`是所有集合类的顶级...

    Collection,List,Set和_Map用法和区别

    Collection, List, Set 和 Map 用法和区别 Collection 是 Java 中的一种对象...Collection、List、Set 和 Map 等集合类是 Java 中非常重要的一部分,需要深入了解其用法和区别,以便更好地使用集合类来实现业务逻辑。

    Java集合Collection、List、Set、Map使用详解编程资料

    Java集合Collection、List、Set、Map使用详解

    Java_Collection_List-Set-Map.zip_list set map

    在Java编程语言中,集合框架是处理对象组的重要工具,主要包括List、Set和Map三大接口。这些接口由Java Collection Framework提供,它是一个统一的架构,用于存储和操作各种类型的对象。接下来,我们将深入探讨这三...

    Java集合:Collection、List、Set、Map使用详解

    本文将深入探讨Java集合框架中的四个主要接口:Collection、List、Set和Map,以及它们的实现原理。 ### 集合框架概述 集合框架是Java API中用于存储和管理对象的统一框架。它为数据结构提供了抽象接口,使得程序员...

    collection,list,set,map

    不过,从描述和标签中的“源码 工具”可以推测,作者可能在讨论Java中的集合框架,包括Collection接口、List、Set以及Map接口,这是Java开发中经常讨论的集合类型。 在Java编程中,Collection、List、Set和Map是...

    Java集合Collection、List、Set、Map使用详解.pdf

    "Java集合Collection、List、Set、Map使用详解" Java集合是Java编程语言中最基本也是最重要的一部分。能够正确地使用集合类和理解集合的实现原理对于Java程序的开发具有无比的好处。本文将详细解释Java集合的实现...

    Java集合排序及java集合类详解(Collection、List、Map、Set).doc

    Java集合排序及java集合类详解(Collection、List、Map、Set).doc

    Java(Collection_List_Map_Set).rar_java集合类详解

    本篇文章将深入探讨Java集合类,包括Collection、List、Map和Set,以及它们之间的关联和排序机制。 首先,让我们从Collection接口开始。Collection是最基本的集合接口,它是所有集合类的父接口。Collection接口定义...

    Java集合排序及java集合类详解(Collection、List、Map、Set)讲解.pdf

    Java集合排序及java集合类详解(Collection、List、Map、Set)讲解 Java集合框架是Java语言中最重要的组件之一,能够正确使用Java集合框架对于Java程序的开发具有无比的好处。本文将详细解释Java集合框架的实现原理、...

    Java集合Collection、List、Set、Map使用详解.doc

    Java 集合框架的主要组件包括 Collection、List、Set、Map 等。 1.1 容器简介 容器是指可以存储对象的对象。 Java 集合框架中有多种类型的容器,每种容器都有其特点和用途。常见的容器有 Collection、List、Set、...

    Java集合排序及java集合类详解(Collection、List、Map、Set)

    ### Java集合排序及java集合类详解(Collection、...以上是对Java集合框架中的`Collection`、`List`、`Set`和`Map`的详细介绍,涵盖了它们的基本概念、常用方法、实现原理等方面,希望对理解和使用Java集合有所帮助。

    Java集合排序及java集合类详解(Collection、List、Map、Set).pdf

    Java集合框架主要包括Collection、List、Set、Map四个接口,它们分别实现了不同的数据结构。 Collection接口是Java集合框架的顶层接口,它定义了基本的集合操作,如add、remove、contains等。Collection接口有两个...

    java集合collection、list、set、map使用详解.doc

    java集合collection、list、set、map使用详解.doc

Global site tag (gtag.js) - Google Analytics