前言

使用java编程语言的开发人员,在日常开发过程中经常会使用到java的一些集合类,不过这些集合类太多,很多人对它们的特点和使用场景不是特别的了解,通过此文给大家总结一下这方面的知识,方便大家面试或者是初学者理解。

Java集合类主要由CollectionMap两个接口派生而出,另外还有遍历集合的工具Iterator迭代器:

集合框架

Connection接口

Connection

Connection包含List和Set两大分支:

1、List( 有序、可重复)

ArrayList与Vector

①底层数据结构是数组,查询快,增删慢。

②前者效率高、线程不安全,后者效率低、线程安全。

LinkedList

①底层数据结构是链表,查询慢,增删快。

②线程不安全,效率高。

2、Set

HashSet(唯一、无序)

①底层数据结构是哈希表。

②两个方法:hashCode()和equals()

LinkedHashSet(唯一、有序)

①底层数据结构是链表和哈希表。

②由链表保证元素有序、哈希表保证元素唯一。

TreeSet(唯一、有序)

①底层数据结构是红黑树。

②自然排序、比较器排序。

③根据比较的返回值是否是0来决定是否唯一。

Map接口

Map

key-value键值对,有三个比较重要的实现类,分别是HashMap、TreeMap和HashTable,这三者之间的区别:

①TreeMap是有序的,HashMap和HashTable是无序的。

②Hashtable的方法是同步的、线程安全的;HashMap的方法不是同步的、线程不安全。HashMap效率较高,Hashtable效率较低。

③Hashtable不允许null值,HashMap允许null值(key和value都允许)。

④父类不同:Hashtable的父类是Dictionary,HashMap的父类是AbstractMap。

总结

所有集合类都位于java.util包下,一般的使用场景大家只要知道list有序,set不能重复,map是键值对就差不多了,在一些特殊的场景,比如追求代码效率、线程安全等,那就要仔细区分下这些集合类了。

来源:https://blog.csdn.net/weixin_39948277/article/details/110617490

java list有序还是无序_java的集合框架相关推荐

  1. Educoder–Java高级特性(第二章)- 集合框架【笔记+参考代码】

    Educoder–Java高级特性(第二章)- 集合框架[笔记+参考代码] 第一关 编程要求 请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,创建ArrayList集 ...

  2. java list有序还是无序_牛批!2w字的Java集合框架面试题精华集(2020最新版),赶紧收藏。...

    一个多月前,作者和一些小伙伴决定做一系列的 Java 知识点常见重要问题的小册,方便用来夯实基础!小册的标准就一个,那就是:取精华,取重点.每一本小册,我们都会充分关注我们所总结的知识点是否达到这个标 ...

  3. java 有序容器_Java 容器集合框架概览

    Java Collections Framework 集合的概念 集合collection,有时叫做容器container,把多个元素组成一个单元. 早期的Java (pre-1.2) 中包含了Vec ...

  4. java面向对象编程集合边框_JAVA 面向对象 集合框架

    1.Java集合框架提供了一套性能优良.使用方便的接口和类,它们位于java.util包中 如果并不知道程序运行时会需要多少对象,或者需要 更复杂方式存储对象--可以使用Java集合框架 2.java ...

  5. java jcf框架干啥的_Java 之 集合框架(JCF)

    1.集合框架 a.框架:为了实现某一目的或功能,而预先提供的一系列封装好的.具有继承或实现关系的类与集合 b.集合:①定义:Java中对一些数据结构和算法进行封装,即封装(集合也是一种对象) ②特点: ...

  6. java set 有序的吗_java set 顺序

    展开全部 集(set)是最简单的一种集合,它的对象不按特定方式排序(不保证集合中元32313133353236313431303231363533e78988e69d8331333366306531素 ...

  7. java中list元素排序_java list集合元素根据某些字段排序

    一.jdk1.6的环境下 新建ComparatorSort类,并实现Comparator接口,重写compare方法 降序排序:o1的元素>o2的元素,并返回-1:o1的元素小于o2的元素,并返 ...

  8. java遍历是什么意思_Java遍历集合的几种方法分析(实现原理、算法性能、适用场合)...

    概述 Java语言中,提供了一套数据集合框架,其中定义了一些诸如List.Set等抽象数据类型,每个抽象数据类型的各个具体实现,底层又采用了不同的实现方式,比如ArrayList和LinkedList ...

  9. java遍历是什么意思_Java遍历集合方法分析(实现原理、算法性能、适用场合)...

    概述 Java语言中,提供了一套数据集合框架,其中定义了一些诸如List.Set等抽象数据类型,每个抽象数据类型的各个具体实现,底层又采用了不同的实现方式,比如ArrayList和LinkedList ...

最新文章

  1. Daydream VR
  2. 090_HTMLCollection和NodeList对象
  3. echarts label加边框_关于echarts的lines中的label的设置 -问答-阿里云开发者社区-阿里云...
  4. String.subString内存泄露
  5. error: style attribute '@android:attr/windowEnterAnimation' not found.
  6. 创建世界级品牌的大师忠告
  7. 设计素材模板|春节要来了,素材准备好了么?
  8. 正则表达式 两个符号的字段_Tableau正则提取字段部分内容
  9. 现代书法脚本字体Tifany Script
  10. linux 忘记了密码,Linux忘记密码的解救方法
  11. 公差与配合查询计算过程讲解
  12. 【Python】所有常用Python库和功能查询表
  13. 系统分析师学习笔记(十七)
  14. Vue 的最大的优势是什么?
  15. 通常我们将python语言程序保存在一个后缀_c 语言程序设计 沈显君课后答案
  16. js逆向案例-obsfuscator混淆
  17. Java项目实现文件上传FTP
  18. 惊呆了!我用 Python 可视化分析和预测了 2022 年 FIFA 世界杯
  19. HIS(医院信息系统HospitalInformationSystem)
  20. Windows 下 C++ 利用 OpenCV glob 函数获取文件夹下所有文件绝对路径

热门文章

  1. 03_Nginx添加新模块
  2. linux下重启weblogic(关闭和启动)
  3. 6.关于QT中的内存管理,动态的制作,动态库的调用,静态库的制作
  4. 5进程原语:execl(),execlp(),execle(),execv(),execvp(),execvp(),execve()
  5. Mule ESB 学习笔记
  6. python通过DictReader实现两个csv文件的映射查找lookup之代码详解
  7. Petalinux 2018.2 for Xilinx
  8. C++const类型的引用参数
  9. 初学者学习Python,掌握这些实用小技巧能快速入门!
  10. Redis 错误1067:进程意外终止,Redis不能启动,Redis启动不了