简述List、Set、Map类型的集合的各自特点

简述List、Set、Map类型的集合的各自特点

转载于https://blog.csdn.net/m0_37668335/article/details/80556862?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

JAVA集合主要分为三种类型:

Set(集) List(列表) Map(映射) Collection 接口

Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法。 Set 和List 都继承了Conllection,Map没有

Set(集合): Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。 set接口主要实现了两个实现类:
HashSet : HashSet类按照哈希算法来存取集合中的对象,存取速度比较快
TreeSet : TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。

List(列表): List的特征是其元素以线性方式存储,集合中可以存放重复对象。 List接口主要实现类包括:
ArrayList() : 代表长度可以改变得数组。可以对元素进行随机的访问,向ArrayList()中插入与与删除元素的速度慢。
LinkedList(): 在实现中采用链表数据结构。插入和删除速度快,访问速度慢。
对于List的随机访问来说,就是只随机来检索位于特定位置的元素。 List 的 get(int index) 方法放回集合中由参数index指定的索引位置的对象,下标从“0” 开始。

Map(映射): Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。 Map没有继承于Collection接口 从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。

Map集合中的键对象不允许重复,也就说,任意两个键对象通过equals()方法比较的结果都是false. 但是可以将任意多个键独享映射到同一个值对象上。

总结: List按对象进入的顺序保存对象,不做排序或编辑操作。Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序–否则应该使用List)。Map同样对每个元素保存一份,但这是基于"键"的,Map也有内置的排序,因而不关心元素添加的顺序。如果添加元素的顺序对你很重要,应该使用 LinkedHashSet或者LinkedHashMap.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信服务项目表

本文介绍了方倍工作室对外提供的微信相关服务介绍,供有需要购买的客户进行参考。 免费服务图书购买语音问答代码视频技术咨询企业顾问定制服务服务内容微信基础教程常用代码下载微信完整教程图书源码下载发起问题查看他人答案微信高级代码微信开发视频微信开发技术技…

前端学习(1818):前端面试题之封装函数之进行字符串驼峰的命名

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><script type"text/javascript">//已知有字符串fooget-element-by-id,写一个function将其转化成驼峰表示法”getE…

svn redis和rabbitmq服务启动

SVN启动&#xff1a; svnserve -d -r /home/svn/ redis启动&#xff1a; 1.切换目录&#xff1a;/usr/local/bin 2.执行命令&#xff1a; ./redis-server redis_6380.conf & ./redis-server redis_6381.conf & ./redis-server redis_6382.conf & 启动rabbitmq &a…

linux内核编程踩坑

内核模块的函数都是两个_ _,注意不要只写一个 _ !!!,坑了我个把小时。

前端学习(1819):前端面试题之封装函数之冒泡排序

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><script type"text/javascript">var arr [32,4,67,82,21,11];///轮数for(var i 0; i<arr.length-1;i){//次数…

《linux内核设计与实现》读书笔记第一、二章

第一章 Linux内核简介 1.1 Unix的历史 1971年&#xff0c;Unix被移植到PDP-11型机中。 1973年&#xff0c;Unix操作系统用C语言改写——为Unix系统的广泛移植铺平了道路。 1977年&#xff0c;伯克利推出1BSD系统 1994年&#xff0c;伯克利推出Unix系统的最终官方版——4.4BSD u…

取模和取余的区别

其实取模和取余在目标上是一致的&#xff0c;但是因为语言对取余和取模上定义的不同&#xff0c;导致得到的结果不同。 对取余和取模定义不同的语言中&#xff0c;两者的不同点只有一个 取余运算在计算商值向0方向舍弃小数位 取模运算在计算商值向负无穷方向舍弃小数位 从上…

写代码个人体会

主干代码不要写在分支中看看代码是否真的需要判断,不需要判断的就没有必要加判断打分支经量让更多的代码写在分支中 不要写的过于分散if语句最好不要超过两层 &#xff0c;如果if语句超过两层的话就要考虑重新调整逻辑for语句最好不要超过两层&#xff0c;如果for语句超过两层的…

前端学习(1821):前端面试题之封装函数之去重

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><script type"text/javascript">/** 1.创建一个新数组,把原数组中的第一个元素插入到新数组中* 2.遍历原数组中的…

HandlerInterceptor拦截器的使用

https://blog.csdn.net/sinat_32023305/article/details/81284518

天猫整站SSM-分页-limit(做个人学习笔记整理用)

数据库使用的是mysql 要想在Mybatis中使用分页查询&#xff0c;首先要清楚mysql中limit的用法。 limit a,b a是从第a1条数据开始&#xff0c;b是指读取几条数据 例如&#xff1a;select * from table limit 0,10 这句sql语句是说从表中获取第1条开始的10条记录

spingboot 集成swagger2

https://www.cnblogs.com/jtlgb/p/8532433.html https://blog.csdn.net/qq_41446768/article/details/87936748

天猫整站SSM-分页-herf(做个人学习笔记整理用)

天猫整站SSM-分页-&#xff08;做个人学习笔记整理用&#xff09;<li ><a href"?start${page.start-page.count}" aria-label"Previous" ><span aria-hidden"true">‹</span></a> </li>如&#xff1a;<…

Lab1--关于安装JUnit的简要描述

安装JUnit的过程描述&#xff1a; 下载两个jar包&#xff1a; hamcrest-all-1.3.jar junit-4.12.jar 注意在导入完成jar包之后不要随意改变jar包的路径。 创建java程序&#xff0c;书写如下代码进行测试&#xff1a; triangle.java package triangle; public class triangle { …

天猫整站SSM-分页-总结(做个人学习笔记整理用)

天猫整站SSM-分页-herf&#xff08;做个人学习笔记整理用&#xff09; 先写Page.java package com.how2java.tmall.util;public class Page {private int start; //开始页数private int count; //每页显示个数private int total; //总个数private String param; //参数privat…

Java 图片流和base64互转

https://www.jianshu.com/p/ffb1f7e85530

ParameterizedType应用,利用java反射获取参数化类型的class实例

https://blog.csdn.net/ltaihyy/article/details/78211274 public class TestParameterizedType extends RequestApiParam<UserDispatchMakeInfoDTO1> {public static void main(String[] args) {Class clazz1TestParameterizedType.class;/*** 父类的参数类型不能是泛型…

天猫整站SSM-后台分类管理-增加(做个人学习笔记整理用)

天猫整站SSM-后台分类管理-增加&#xff08;做个人学习笔记整理用&#xff09; CategoryController&#xff1a; request.getSession().getServletContext()// 获取的是page的上下文。 request.getSession().getServletContext().getRealPath(“”); 是获取的的tamcat的路径&a…

Java中的Type接口和Class类有什么区别

https://blog.csdn.net/linghuainian/article/details/86137810

canvas 在线画图

canvas 在线画图 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style type"text/css">/*画图大师来了*/#cans{border:1px solid red;}</style><scrip…