JAVA中列表,集合之间的区别
整体来看List,Set,Map都是实现了Collection接口的接口。
- 重复性:
- List允许存在重复的元素,也就是说List中可以在不影响现有元素的值及其索引的同时插入新的重复元素。
- Set不允许存在重复的元素,Set集合都不允许插入重复元素。
- Map是一种以键值对形式存储元素的映射类型集合,对Map而言key(键)是唯一的,value(值)是可重复的。
- 空值性:
- List允许任意数量的空值。
- Set最多允许一个空值。
- Map只允许出现一个空键,但允许任意数量的空值。
- 排序性:
- List保持每个元素的插入顺序。
- Set中的元素都是无序的,但某些Set的实现类可以以某种顺序对其中的元素进行排序。(PS:LinkedHashSet按照元素的插入顺序进行排序。)
- Map与Set一样对元素惊醒无序存储,但Map某些实现类也会对元素进行排序。(PS:TreeMap按照键对其中的元素进行升序排序,LinkedHashMap按照每个元素的插入顺序进行排序)
- 实现类:
- List:ArrayList、LinkedList等等。
- Set:HashSet、LinkedHashSet、TreeSet、SortedSet等等。
- Map:HashMap、TreeMap、WeakHashMap、LinkedMashMap、IdentityHashMap等等。
- 使用场景:
- 如果需要时常根据元素的索引值进行查询操作,那么List(ArrayList)是一种不错的选择。
- 如果你的数据不允许重复的值存在,Set是比较适合的选择。
- 如果需要保留每个元素的插入顺序,那么首选还是List集合。
- 如果你的数据需要进行key-value映射,那么就用Map。
原文引用:JAVA教程
JAVA中列表,集合之间的区别的更多相关文章
- Java中equals和==之间的区别
今天在写表达式求值的时候,发现了equals和==||!=和!equals()之间是不一样的. 我就从网上搜了搜关于这方面的知识,然后在下面做一个总结: Java中有两类数据类型: 基本数据类型(Pr ...
- java中 列表,集合,数组之间的转换
java中 列表,集合,数组之间的转换 java中 列表,集合,数组之间的转换 java中 列表,集合,数组之间的转换 List和Set都是接口,它们继承Collection(集合),集合里面任何数据 ...
- Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别
ArrayList和Vector的区别ArrayList与Vector主要从二方面来说. 一.同步性: Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步 ...
- C#与java中的集合区别
集合一般的操作 插入: add 删除: remove 查找: contains,remove java中的集合 注意哪些是接口,哪些是实现类 使用集合的时候 1. ...
- JAVA中的集合容器操作类
目录 JAVA中的集合容器操作类 List集合 ArrayList的操作方法说明 LinkedList Stack Set Map Queue 总结 JAVA中的集合容器操作类 Java容器类库总共分 ...
- Java中Set Map List 的区别
java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...
- Java中Comparable和Comparator接口区别分析
Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comp ...
- java中的集合操作类(未完待续)
申明: 实习生的肤浅理解,如发现有错误之处.还望大牛们多多指点 废话 事实上我写java的后台操作,我每次都会遇到一条语句:List<XXXXX> list = new ArrayList ...
- Java中的集合概述
Java中的集合类有两个重要的分支,分别是接口Collection(包括List,Set等)和接口Map. 由于HashSet的内部实现原理使用了HashMap,所以我们先来了解Map集合类. 1.H ...
- Java中的集合List、ArrayList、Vector、Stack(三)
List接口 List集合代表一个有序集合,集合中每一个元素都有其对应的顺序索引.List集合容许使用重复元素,可以通过索引来访问指定位置的集合对象. ArrayList和Vector实现类 Arra ...
随机推荐
- win7安装laravel
使用Packagist 镜像 建立一个composer.json文件,内容如下: { "name": "laravel/laravel", "desc ...
- Android基础入门教程
http://www.kancloud.cn/wizardforcel/w3school-android/100491
- [转载]威力导演14旗舰破解版(中文简体)|取消30天限制CyberLink&nb
2015月9月15日(当地时间),CyberLink讯连科技发布新一代视频编辑软件 — PowerDirector威力导演14,融合了上个版本发布以来的多次更新升级,威力导演依旧 ...
- python如何实现多线程
一个线程就是一个轻量级进程,多线程能让我们一次执行多个线程. python是多线程语言,其内置有多线程工具包 python中GIL(全局解释器锁)确保一次执行单个线程.一个线程保存GIL并在将其传递给 ...
- 第二篇 Python图片处理模块PIL(pillow)
本篇包含:16.Point 17.Putalpha 18.Putdata 19.Putpalette 20.Putpixel 21.Quantize 22.R ...
- PAT 天梯赛 L1-028. 判断素数 【水】
题目链接 https://www.patest.cn/contests/gplt/L1-028 AC代码 #include <iostream> #include <cstdio&g ...
- 【Tech】mac下svn和scp使用笔记
1.命令行从svn下载代码 mac本身自带svn,所以使用非常简单,在本地创建代码存放的文件夹,然后cd到该文件夹下,运行: svn checkout svn://ip地址/文件路径 . 然后出现要求 ...
- P4299 首都
题目 P4299 首都 做法 这题是动态维护树的重心,连边后找到两棵树的重心拉一条链(性质:新重心在链上),然后暴力爬 要注意: 1.是找重心的过程中要先把旋转标记放下来,因为\(Splay(x)\) ...
- L1范数与L2范数正则化
2018-1-26 虽然我们不断追求更好的模型泛化力,但是因为未知数据无法预测,所以又期望模型可以充分利用训练数据,避免欠拟合.这就要求在增加模型复杂度.提高在可观测数据上的性能表现得同时,又需要兼顾 ...
- Centos 一次卸载多个RPM包
rpm 不支持通配符,可以使用 xargs来接收多个变量 示例,一次性卸载所有 erlang先关的rpm包: rpm -qa | grep erlang | xargs rpm -e --nodeps