• 欢迎来到本博客,希望可以y一起学习与分享

java之容器集合

Java benz 1个月前 (08-06) 5次浏览 0个评论 扫描二维码
文章目录[隐藏]

容器

容器是通过数据结构与算法的封装与扩展,对外提供数据的存错与操作。
常用的数据结构是:数组(array)、栈(stack)、链表(linked list)、队列(queue)、树(tree)、图(graph)、堆(heap)、散列表(hash)等。这些数据结构各自有自己的优点与缺点,根据它们的特性就有了如下的Java集合框架图。

集合主要有:List、Set、Map和Queue,但是一般在开发中使用List、Set、Map这三个比较多。
根据底层的实现方法,会有以下的集合:
Collection 接口的接口 对象的集合(单列集合)
├——-List 接口:元素按进入先后有序保存,可重复
│—————-├ LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全
│—————-├ ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全
│—————-└ Vector 接口实现类 数组, 同步, 线程安全
│ ———————-└ Stack 是Vector类的实现类
└——-Set 接口: 仅接收一次,不可重复,并做内部排序
├—————-└HashSet 使用hash表(数组)存储元素
│————————└ LinkedHashSet 链表维护元素的插入次序
└ —————-TreeSet 底层实现为二叉树,元素排好序

Map 接口 键值对的集合 (双列集合)
├———Hashtable 接口实现类, 同步, 线程安全
├———HashMap 接口实现类 ,没有同步, 线程不安全
│—————–├ LinkedHashMap 双向链表和哈希表实现
│—————–└ WeakHashMap
├ ——–TreeMap 红黑树对所有的key进行排序
└———IdentifyHashMap

其中Collections和Arrays是工具类。Collections是集合的工具类,Arrays是Array的工具类。注意:Collections(集合工具类)与Collection(集合),Arrays(数组工具类)与Array(数组)是不相同的,注意区分。

集合和数组的区别

长度区别

  • 数组固定。
  • 集合可变。

内容区别

  • 数组可以是基本类型,也可以是引用类型。
  • 集合只能是引用类型。

元素区别:

  • 数组只能存储同一种类型。
  • 集合可以存储不同类型(其实 集合一般存储的也是同一种类型)。

List和Set的区别

有序性

  • List保证按插入顺序排序
  • Set存储和取出顺序不一致

唯一性

  • List可以重复
  • Set元素唯一

获取元素

  • List可以通过索引直接操作元素
  • Set不能根据索引获取元素

HashMap(重点)

java中Map及Map.Entry详解
HashMap深度分析详解
hashmap hash冲突怎么解决_HashMap面试必问的6个点,你知道几个?
面试阿里,HashMap 这一篇就够了
HashMap常见面试题整理

参考

java集合超详解
Java集合容器面试题(2020最新版)


文章 java之容器集合 转载需要注明出处
喜欢 (0)

您必须 登录 才能发表评论!