精华内容
下载资源
问答
  • 常用的集合类型有哪些
    千次阅读
    2021-08-03 19:16:40

    常用的三大类集合:Set、List、Map。

    1 Set

    1. 1) Set 集合属于单列集合,不允许包含重复元素;
    2. 2) 判断元素是否重复的标准为对象的 equals 方法,存在时返回 false,不存在返回 true;
    3. 3) 元素的排序规则,由相应的实现类决定,分为无序、元素大小排序、写入顺序排序;
    4. 4) 初始化大小,扩容参考 HashMap。

    1.1 Set 接口、实现类:

    名称类型线程同步描述
    Set接口继承了Collection接口
    SortedSet接口继承了Set接口
    HashSet实现类不同步继承了AbstractSet类,实现了Set、Cloneable、Serializable接口
    TreeSet实现类不同步继承了AbstractSet类,实现了NavigableSet(继承了SortedSet)、Cloneable、Serializable接口
    LinkedHashSet实现类不同步继承了HashSet类,实现了Set、Cloneable、Serializable接口

     

    1.2 HashSet


     

    更多相关内容
  • C# 集合类型(常用集合类型整理)

    万次阅读 多人点赞 2018-06-24 09:41:16
    一、常用集合类型及概念 2. 1)List < T > 泛型的List 类是一个不限长度的集合类型,它内部实际就是一个数组,初始长度是4,每次...

    一、常用集合类型及概念

    1.基本关系

    许多泛型集合类型均为非泛型类型的直接模拟。

    Dictionary< TKey, TValue> 是 Hashtable 的泛型版本;它使用枚举的泛型结构KeyValuePair< TKey, TValue> 而不是DictionaryEntry

    List< T> 是 ArrayList 的泛型版本
    Queue< T>对应Queue
    Stack< T>对应Stack

    SortedList< TKey, TValue> 对应SortedList,这两个版本均为字典和列表的混合

    SortedDictionary< TKey, TValue> 泛型类是一个纯字典,并且没有任何非泛型对应项

    LinkedList< T>泛型类是真正的链接的列表,并具有任何非泛型对应项

    2.常用集合类型

    1)ArrayList

    ArrayList是List接口的可变数组非同步实现,并允许包括null在内的所有元素,相当于List < object>

    2)List < T >

    泛型的List 类是一个不限长度的集合类型,它内部实际就是一个数组,初始长度是4,每次数组到达限制,就会把现有容量翻倍,它提供用于对集合进行搜索、排序和操作等方法
    List是数组链表,数组链表访问快,复杂度O(1),但是添加删除复杂度O(n)

    3)LinkedList

    LinkedList是List接口的双向链表非同步实现,并允许包括null在内的所有元素。
    底层的数据结构是基于双向链表的,
    LinkedList是指针链表,指针链表访问复杂度是O(n),但是添加删除很快O(1),如果对这个集合在中间的添加删除操作非常频繁的话,就建议使用LinkedList。

    4)Dictionary < K, V>

    存储键值对的关联性集合,查询等操作速度很快,因为它的时间复杂度是O(1)
    ,单线程中推荐使用Dictionary,有泛型优势,且读取速度较快,容量利用更充分.

    5)Hashtable

    Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对
    基本概念
    Hashtable使用了闭散列法来解决冲突,它通过一个结构体bucket来表示哈希表中的单个元素,这个结构体中有三个成员:
     (1) key :表示键,即哈希表中的关键字。
     (2) val :表示值,即跟关键字所对应值。
     (3) hash_coll :它是一个int类型,用于表示键所对应的哈希码。

    哈希表的所有元素存放于一个名称为buckets(又称为数据桶) 的bucket数组之中
    优点:
     (1)在使用哈希表保存集合元素(一种键/值对)时,首先要根据键自动计算哈希代码,以确定该元素的保存位置,再把元素的值放入相应位置所指向的存储桶中。在查找时,再次通过键所对应的哈希代码到特定存储桶中搜索,这样将大大减少为查找一个元素进行比较的次数

    (2)多线程程序中推荐使用Hashtable,对Hashtable进一步调用Synchronized()方法可以获得完全线程安全的类型

    Dictionary< TKey, TValue> 是 Hashtable 的泛型版本,它们之间实现上区别不大,运行效率上有一些差别
    Hashtable由于键值类型都object,所以涉及装箱拆箱操作,在添加数据的效率上要差一些,但是频繁使用数据时效率更高,HashTable的优点就在于其索引的方式,速度非常快。如果以任意类型键值访问其中元素会快于其他集合,特别是当数据量特别大的时候,效率差别尤其大。

    6)SortedList

    表示基于相关的 IComparer 实现按键进行排序的键/值对的集合,与哈希表类似,区别在于SortedList中的Key数组排好序的

    7)堆栈(Stack)

    表示对象的简单的后进先出非泛型集合。Push方法入栈,Pop方法出栈

    8)队列(Queue)

    队列先进先出,enqueue方法入队列,dequeue方法出队列

    9)SortedList< TKey,TValue>

    SortedList< TKey,TValue>是支持排序的关联性集合,将数据存储在数组中的。
      也就是说添加移除操作都是线性的,时间复杂度是O(n),因为操作其中的元素可能导致所有的数据移动。
      但是因为在查找的时候利用了二分搜索,所以查找的性能会好一些,时间复杂度是O(log n)
      所以推荐使用场景是这样地:如果你想要快速查找,又想集合按照key的顺序排列,最后这个集合的操作(添加和移除)比较少的话,就是SortedList了。
      集合中的数据是有序的。可以通过key来匹配数据,也可以通过int下标来获取数据。

    添加操作比ArrayList,Hashtable略慢;查找、删除操作比ArrayList快,比Hashtable慢

    #####10)SortedDictioanry< TKey,TValue>

    SortedDictionary< TKey,TValue>和Dictionary< TKey,TValue>大致上是类似的,但是在实现方式上有一点点区别
      SortedDictionary< TKey,TValue>用二叉树作为存储结构的。并且按key的顺序排列
      SortedDictionary< TKey,TValue>相比于SortedList< TKey,TValue>其性能优化了
      SortedList< TKey,TValue>其内部维护的是数组而SortedDictionary< TKey,TValue>内部维护的是**红黑树(平衡二叉树)**的一种,因此其占用的内存,性能都好于SortedDictionary< TKey,TValue>
      唯一差在不能用下标取值

    11)HashSet< T>

    HashSet是一个无序的能够保持唯一性的集合,不支持下标访问。

    12)SortedSet< T>

    SortedSet内部也是一个二叉树,用来支持按顺序的排列元素。
      算法,存储结构都与哈希表相同,主要是设计用来做高性能集运算的,例如对两个集合求交集、并集、差集等。集合中包含一组不重复出现且无特定顺序的元素。

    13)BitArray

    BitArray用于二进制运算,“或”、“非”、“与”、"异或非"等这种操作,只能存true或false;

    14)ListDictionary

    单向链表,每次添加数据时都要遍历链表,数据量大时效率较低,数据量较大且插入频繁的情况下,不宜选用

    15)HybridDictionary

    HybridDictionary的类,充分利用了Hashtable查询效率高和ListDictionary占用内存空间少的优点,内置了Hashtable和ListDictionary两个容器,添加数据时内部逻辑如下:

    当数据量小于8时,Hashtable为null,用ListDictionary保存数据。

    当数据量大于8时,实例化Hashtable,数据转移到Hashtable中,然后将  ListDictionary置为null。

    下一篇再写一下每一种集合的内部实现,及具体的运行效率比较

    我会在我的公众号上推送新的博文,也可以帮大家解答问题
    微信公众号 Andy and Unity 搜索名称或扫描二维码
    在这里插入图片描述
    希望我们能共同成长,共同进步

    展开全文
  • JAVA中常用集合类型.pdf
  • Java中有哪些集合集合有哪些类?

    万次阅读 多人点赞 2019-11-12 15:14:06
    Java中所有的类都位于java.util包下,...Set 、Map、List可以看做集合的三大类。 而遍历集合的工具有Iterator和Enumeration; Arrays和Collection是操作数组集合的两个工具类。 一、Java中的集合主要分为四类: 1、L...

    Java中所有的类都位于java.util包下,主要由两个接口派生出来,分别是Collection和Map.Collection包含了List和Set两大分支。Map是一个映射接口。Set 、Map、List可以看做集合的三大类。
    而遍历集合的工具有Iterator和Enumeration;
    Arrays和Collection是操作数组集合的两个工具类。

    一、Java中的集合主要分为四类:

    1、List列表:有序的,可重复的;
    2、Queue队列:有序,可重复的;
    3、Set集合:不可重复;
    4、Map映射:无序,键唯一,值不唯一。

    二、集合类下包含的主要的实现类:
    每种集合类型下包含的具体的实现类
    1 List列表:有序,可重复

    1.1 ArrayList数组列表,有序,可重复,内部是通过Array实现。对数据列表进行插入、删除操作时都需要对数组进行拷贝并重排序。因此在知道存储数据量时,尽量初始化初始容量,提升性能。

    1.2 LinkedList双向链表,每个元素都有指向前后元素的指针。顺序读取的效率较高,随机读取的效率较低。

    1.3 Vector向量,线程安全的列表,与ArrayList一样也是通过数组实现的,不同的是Vector是线程安全的,也即同一时间下只能有一个线程访问Vector,线程安全的同时带来了性能的耗损,所以一般都使用ArrayList。

    1.4 Stack栈,后进先出(LIFO),继承自Vector,也是数组,线程安全的栈。但作为栈数据类型,不建议使用Vector中与栈无关的方法,尽量只用Stack中的定义的栈相关方法,这样不会破坏栈数据类型。

    1.5 ArrayQueue数组队列,先进先出(FIFO)

    2 Queue队列,有序、可重复

    2.1 ArrayDeque数组实现的双端队列,可以在队列两端插入和删除元素

    2.2 LinkedList也是双向链表

    2.3 PriorityQueue优先队列,数组实现的二叉树,完全二叉树实现的小顶堆(任意一个非叶子节点的权值,都不大于其左右子节点的权值)

    3 Map映射/字典,无序,键值对,键唯一

    在这里插入图片描述
    3.1 HashMap哈希映射/字典,无序字典,键值对数据,key是唯一的,Key和Value都可以为null

    3.2 TreeMap红黑树实现的key->value融合,可排序,红黑树是一种自平衡二叉查找树。

    3.3 LinkedHashMap链表映射/字典,继承了hashmap的所有特性,同时又实现了双向链表的特性,保留了元素插入顺序。

    4 Set集合,不可重复

    4.1 HashSet基于HashMap实现的集合,对HashMap做了一些封装。与HaspMap不同的是元素的保存为链表形式,插入数据时遍历链表查看是否有相同数据,有则返回false,没有则返回true.

    4.2 LinkedHashSet链表集合,继承自HashSet与LinkedHashMap相似,是对LinkedHashMap的封装。

    4.3 TreeSet红黑树集合,与TreeMap相似,是对TreeMap的封装。

    比较:
    在这里插入图片描述

    展开全文
  • JAVA中常用集合类型[归类].pdf
  • 你所知道的集合类都有哪些?主要方法?

    你所知道的集合类都有哪些?主要方法?

    大家好,我是酷酷的韩~
    酷酷的韩金群
    1.最常用的集合类是 List 和 Map。 List的具体实现包括 ArrayList和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List适用于按数值索引访问元素的情形。

    2.Map 提供了一个更通用的元素存储方法。 Map集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。

    3.它们都有增删改查的方法。
    (1)对于set,大概的方法是add,remove, contains等
    (2)对于map,大概的方法就是put,remove,contains等

    4.List类会有get(int index)这样的方法,因为它可以按顺序取元素,而set类中没有get(int index)这样的方法。List和set都可以迭代出所有元素,迭代时先要得到一个iterator对象,所以,set和list类都有一个iterator方法,用于返回那个iterator对象。map可以返回三个集合,一个是返回所有的key的集合,另外一个返回的是所有value的集合,再一个返回的key和value组合成的EntrySet对象的集合,map也有get方法,参数是key,返回值是key对应的value,这个自由发挥,也不是考记方法的能力,这些编程过程中会有提示,结合他们三者的不同说一下用法就行。

    越努力,越幸运。 ------酷酷的韩~

    展开全文
  • 集合常用的三种类型

    千次阅读 2020-11-16 20:47:13
    集合类型常用的三种类型:Set(集)、List(列表)、Map(映射) 1.集Set接口 Set是一种不包含重复元素的Collection,即任意两个元素e1和e2都e1.equals(e2)=false,Set最多一个null元素。很明显,Set的构造函数...
  • 在C#里面我们常用各种集合,数组,List,Dictionary,Stack等,然而这些集合都是非线程安全的,当多线程同时读写这些集合的时候,可能造成里面的数据混乱,为此微软从Net4.0开始专门提供了另一套线程安全的版本(放在System...
  • 常用的几种java集合类总结

    万次阅读 多人点赞 2018-08-09 18:13:16
    一:直观框架图 简单版: ...Collection接口又3种子类型,List、Set和Queue,再下面是一些抽象类,最后是具体实现类,常用ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedH...
  • java中常用的几个集合

    万次阅读 多人点赞 2019-06-10 20:19:24
    //包含Collection(集合),List,Set,Map(图),以及其Iterator,Comparator,Cloneable,还有常用的具体实现类 //List<List<String>>集合的嵌套使用 //1、是否允许空 //2、是否允许重复数据 //3、...
  • 集合常用哪几种?

    千次阅读 2020-08-05 10:20:36
    HashMap(首先想起最常用的hashmap,无序,线程不安全,底层是数组加链表加红黑树), HashTable(然后想起线程安全的hashtable), HashTree(然后想起有序的hashtree,底层是红黑树), LinkedHashMap(然后想起有序的...
  • 常用的Map集合

    千次阅读 2019-05-22 21:12:22
    Map集合Map集合常用方法增加删除判断获取Map集合中TreeSet的应用Map集合中HashSet的应用 Map集合常用方法 Map集合和Collection集合的区别 Map集合Key和Value的,Collection集合是只有Value。 Collection集合底层...
  • C语言中基本的数据类型有哪些

    万次阅读 2021-05-19 13:45:07
    C语言中基本的数据类型有哪些发布时间:2020-11-26 15:10:13来源:亿速云阅读:76作者:Leah本篇文章给大家分享的是有关C语言中基本的数据类型有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇...
  • Typescript 常用类型

    千次阅读 2022-03-25 21:31:56
    ## 基本类型### 有哪些类型最为常见的类型: - 布尔值: boolean - 字符串: string - 数值: number - 数组: string[] - 对象: object - null / undefined: 和 JS 中一样稍微进阶一些的类型: - Map: 哈希表,类似于 ...
  • Java常见的几种集合

    千次阅读 2020-12-04 15:23:29
    三、Java集合类型 Java集合框架主要包括两种类型的容器,一种是集合(Collection),另一种是图(Map)。 一、Collection接口 Collction接口三种类型,分别是List,Set和Queue; List常用的实现类ArrayList、...
  • MySQL的10种常用数据类型

    千次阅读 2022-04-29 14:51:38
    常用的数据类型有: 整型(xxxint) 位类型(bit) 浮点型(float和double、real) 定点数(decimal,numeric) 日期时间类型(date,time,datetime,year) 字符串(char,varchar,xxxtext) 二进制数据(xxxBlob...
  • Java常见集合

    千次阅读 2022-01-27 22:10:31
    Java常见集合分为两大类 Collection 和 Map ...2.数组可以存基本数据类型和引用数据类型,而集合只能存储引用数据类型 先讲Collection,Collection是一个接口,List 接口和Set 接口继承了Collection接口 ...
  • python的基本数据类型有哪些

    千次阅读 2022-04-16 21:53:39
    python的基本数据类型有哪些? “类型”是变量所指的内存中对象的类型。 Python 3中六个标准的数据类型:Numbers(数字)、String(字符串)、List(列表)、Tuple(元组)、Sets(集合)、Dictionaries(字典) 一、Numbers...
  • C++之常用集合(总结)

    千次阅读 2020-04-07 20:46:27
    C++中的集合是比较重要的,平时都会遇到很多次,也为我们提供了许多帮助,所以这次针对C++中的一些常用集合做一点总结。 在平时用的时候遇到vector、stack和queue这几种比较多,就针对这三种做了个小总结。 vector ...
  • Python基本数据类型有哪些

    千次阅读 2022-06-06 13:21:48
    那么python基本数据类型有哪些呢?下面是我的回答,希望能帮助到你。“类型”是变量所指的内存中对象的类型。Python 3中六个标准的数据类型:Numbers(数字)、String(字符串)、List(列表)、Tuple(元组)、Set
  • Python中集合常用操作

    千次阅读 2021-09-26 11:00:42
    (1、不同元素组成 2、无序 3、集合中的元素必须是不可变类型) 3、集合的格式 变量名=set(元素,元素) 变量名={元素,元素,,,} 注意:下面写法为一个空字典,为空默认是字典,如果数据在根据格式...
  • 常用Lambda集合取值及类型转换

    千次阅读 2020-08-13 14:49:22
    常用Lambda取值及类型转换 #nodeList 改为Map集合 Map<String, A> nodeNameMap = nodeList.stream().collect(Collectors.toMap(A::getNodeNo, Function.identity(), (k1, k2) -> k1)); #获取集合中一列值...
  • Set 集合以及Set集合的一些常用方法

    千次阅读 2019-09-20 09:15:52
    1、set数组是一个不包含重复元素,无序的元素的集合。 2、set 数组的实现类是HashSet和LinkedHashSet,set接口继承于Collection接口,而Collection接口继承于Iterable接口; public interface Set extends ...
  • 常用集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。 Map 提供了一个更...
  • python常见的数据类型有哪些

    千次阅读 2021-04-02 10:29:25
    变量用来存储数据,那么大家没有想过,我们应该让变量占用多大空间,保存什么样的数据呢?在讲解变量的类型之前,我们先来看一个生活中的例子,例如,我们要运送一台电脑,大卡车和小轿车都可以完成,但是,如果...
  • python中都有哪些数据类型

    万次阅读 2020-12-10 14:52:10
    python中数据类型:整型、长整型、浮点型、字符串类型、布尔类型、列表类型、元组类型、字典类型、集合类型。数据类型是每种编程语言必备属性,只有给数据赋予明确的数据类型,计算机才能对数据进行处理运算,因此...
  • Redis常用五大类型

    千次阅读 2022-01-11 19:46:46
    Redis常用五大类型
  • 常用集合的常用遍历方法

    万次阅读 2018-03-08 17:07:15
    集合框架:就是数据结构,主要List数据结构,Set数据结构,Map数据结构。List数据结构:数据内容无序,但数据的位置是有序的,从0开始,Set 数据结构:数据内容无序,但外置也无序,但内容不能重复。Map数据结构...
  • 首先给出结论,ArrayList,LinkedList,HashMap,StringBuilder是不安全的...Java API中所用的集合类,都是实现了Collection接口,他的一个类继承结构如下: Collection<–List<–Vector Collection<–Li...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 542,237
精华内容 216,894
热门标签
关键字:

常用的集合类型有哪些