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 ...
 
随机推荐
- 22个所见即所得在线Web编辑器
			
这些 Web 编辑器可以在线编辑和处理富 Web 内容,包括格式文本,表格,图片,媒体,链接等等,非常适合集成到 CMS网站内容管理系统中使用.本文又搜集了 22 个 Web 在线编辑器,它们基本代表 ...
 - windows下redis的安装和启动
			
Rides: //cmd管理员进入 // 运行 : redis-cli.exe //报错 :Redis (error) NOAUTH Authentication required.解决方法 // ...
 - "深入理解C语言" 指针
			
本文对coolshell中的"深入理解C语言"这篇文章中提到的指针问题, 进行简要的分析. #include <stdio.h> int main(void){ ]; ...
 - $.messager.confirm修改弹出框按钮提示文字
			
$.messager.confirm 默认提示语为“OK”和“Cancel”.引入中文控件后变为“确定”和“取消” <script src="../js/locale/easyui-l ...
 - str字符串、bool类型常用方法总结
			
字符串拼接 必须是字符串与字符串拼接 print('马化腾'+'马云') print('马化腾' * 10) 将打印10个马化腾 字符串翻转 [ : :-1] 字符串可以加和乘,不能减和乘 input ...
 - CentOS7在VMWare12中安装后不能上网解决办法
			
首先要保证你的VMWare Workstation12 在安装号CentOS7后没改动什么关于网络相关的. 1.我的电脑一开始用的是VMWare WorkStations10,发现VMnet8根本不通 ...
 - Array.asList:数组转list
			
String s[]={"aa","bb","cc"}; List<String> sList=Arrays.asList(s) ...
 - jQuery图片下滑切换焦点图
			
在线演示 本地下载
 - linux+java+webdriver chrome handless无界面启动
			
网上现有的解决方案要么是windows下的,要么是python的,搞了一天终于解决了,记录如下. 1 下载chrome linux版和对应版本的webdriver,我这里使用的是chrome66和ch ...
 - 语义web基础知识学习
			
最近找了一本书,<语义web技术基础>----Pascal Hitzler等编著的.因为最近在看关于自然语言处理的一些东西,就顺带翻了一下,做一点学习笔记,方便以后查看. 本书的作者 Pa ...