| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> Java的List,Set和Map的理解和区别: -> 正文阅读 |
|
[数据结构与算法]Java的List,Set和Map的理解和区别: |
1.List和Set是存储单列数据的集合,Map是存储键值对这样的双列数据的集合。 2.List,Set和Map的区别: ? ? List:中存储的数据是有顺序的,并且值是允许重复的。 ? ?Set:中存储的数据是无序的,并且值是不允许重复的,但是元素在集合中的位置是由hashcode? ? ? 决定的,即存进去的位置是固定的。 ? ? Map:中存储的数据是无序的,它的键是不允许 重复的,它的值允许重复。 3.List的接口有三个实现类: ? ? ? ? (1).LinkedList:基于链表实现的,链表内存是散列的,增删快,查询慢。 ? ? ? ? (2).ArrayList:基于数组实现的,非线程安全的,效率高,增删慢,查询快。 ? ? ? ? (3).Vector:基于数组实现 的,线程安全的,效率低,增删慢,查找快。 4.Set接口有两个实现类: ? ? ? ? (1).hashSet:底层是由HashMap实现的,不允许集合中有重复的值,使用该集合时需要重 ????????????写equals()和hashcode()方法。? ? ? ? ? (2).LinkedHashSet:继承与HashSet,同时又基于LinkedHashMap来进行实现,底层使用的 ?????????????是LinkedHashMap。 5.Map接口有四个实现类: ? ? ? ? (1).HashMap:基于hash表的Map接口实现,非线程安全,高效,支持null值和null键。 ? ? ? ? (2).HashTable:线程安全,低效,不支持null值和null键。 ? ? ? ? (3).LinkedHashMap:是Hash的一个子类,保存了记录的插入顺序。 ? ? ? ? (4).TreeMap:基于二叉树实现,能够把它保存的记录根据键排序,默认是键值的升序排序。 6.ArrayList和LinkedList的区别: ArrayList: ? ? ? ? (1).底层是由数组实现的,非线程安全的,建议单线程时使用,多线程中可以选择Vector。 ? ? ? ? (2)..对于随机访问get和set,ArrayList通过数组下标快速查找,效率高。 ? ? ? ? (3).?对于增加和删除时,因为是数组的数据结构,要移动数组里的元素,效率低;查询修改效率高。 LinkedList: ? ? ? ? (1).底层是由双向链表实现的,线程安全的。 ? ? ? ? (2)..对于随机访问get和set,LinkedList要移动指针,从前往后找,效率低。 ? ? ? ? (3).对于增加和删除时,效率高,查询修改效率低。 7.hashMap的底层理解: ? ? ? ?(1). 存储结构为:数组+链表+红黑树(jdk1.8以后有的),添加红黑树的目的是提高效率。 ? ? ? ? (2).hashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。 ? ? ? ? (3).HashMap的特性:? ?存储方式是键值对,实现快速存取数据;允许null键/值;非同步;不保证有序(比如插入的顺序)。实现map接口 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 14:36:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |