Java 中的 List,Set 和 Map 的区别
来源:互联网 发布:java 天气预报接口 编辑:程序博客网 时间:2024/06/07 21:02
在一般招聘的笔试或面试中中或多或少都有有关Java中集合的考察。下面整理一下有关这方面的知识!
List(列表)
List中以线性的方式存储数据,存储的数据可以重复。
List接口的主要实现类有以下两个:
ArrayList()
: 内部存储结构是数组,由于数组的特性,所以其可以进行随机访问相应的数据,但是插入删除的速度较慢。LinkedList()
: 内部存储结构采用的是链表,所以其访问速度较慢,但是相应的插入和删除的速度较快。
Set(集合)
联想到集合的特性可知,其中存储的数据是无序的,如果插入相同的数据则只会保存一个。
Set接口所主要实现的类有两个:
HashSet()
:底层在存取的时候使用的是Hash算法,也就是在存储数据的时候要存入相应的HashCode()。TreeSet()
:数据存储采用的数据结构是树,能够对存入的数据进行排序。
接下来我们要考虑如下几个问题
Set集合如何保证插入的数据是唯一的呢?
核心就是判断两个对象是否相等
- 首先判断两个对象的HashCode()是否相等,不相等,则说明两个对象不相等,相等,则进行下一步的判断。
- 然后使用
equals()
方法判断两个对象是否相等,相等,说明两个对象相等,反之则说明两个对象不相等。
Map(映射)
Map中的数据都是以 键值对 的形式存储的,map能将相应的键值对映射起来。
Map接口的实现类主要由一下两个:
HashMap()
:相应的数据结构是Hash表,存储的数据时无序的。线程不安全。键和值都快可以为null
。TreeMap()
:相应的数据结构是二叉树,故能保证存储数据的有序性。线程不安全。键不可以为null
。
如果存储的键为null
会抛出空指针异常。在其put()
方面里面有如下代码:
if (key == null) throw new NullPointerException();
阅读全文
0 0
- Java 中的 List,Set 和 Map 的区别
- java 中的Set,List,Map的区别
- Java中的Set,List,Map的区别
- Java中的Set,List,Map的区别
- Java中的Set,List,Map的区别
- Java中的Set,List,Map的区别
- Java中的Set,List,Map的区别
- Java中的Set,List,Map的区别
- java中的list set map的区别
- Java中的Set,List,Map的区别
- Java中的Set,List,Map的区别
- Java中的Set,List,Map的区别
- Java中的Set,List,Map的区别
- Java中的Set,List,Map的区别
- Java中的Set,List,Map的区别
- Java中的Set,List,Map的区别
- Java中的Set,List,Map的区别
- Java中的Set,List,Map的区别
- 第1章 综合概述
- “□” 表情无法在 Android 设备显示? 快试试 EmojiCompact 表情兼容库
- Android 8.0 开发者 FAQ
- Docker之Flanned容器网络不通-yellowcong
- mysql的sql执行计划
- Java 中的 List,Set 和 Map 的区别
- Leetcode445. 链表相加
- The proxy server is refusing connections – Fix for Firefox Browser
- 日期及时间处理包 Carbon 在 Laravel 中的简单使用
- face api协议分析
- POJ 1065 Wooden Sticks 解题报告-用动态规划方法解决(LIS变式)
- CodeForces 873C(贪心)
- SQL优化准则
- C++——选择排序