Java基础之Collection和Map

List:实现了collection接口,list可以重复,有顺序

实现方式:3种,分别为:ArrayList,LinkedList,Vector。

三者的比较:

ArrayList底层是一个动态数组,数组是使用连续的内存空间,有索引,所以它查询快,增删的时候需要移动内存,所以增删慢。

LinkedList底层是一个动态链表,内存是不连续的,查询的时候需要一个节点一个节点的找,所以说,查询慢,但是增删快,因为他不需要挪动内存,只需要修改链表指针。

ArrayList和LinkedList都是线程不安全的,所以适合于单线程。

Vector也实现动态数组,已经被ArrayList替代,它是属于查询安修改也慢,他可以无限加长,是线程安全的,因为它底层用synchronize修饰。

Set:实现了collection接口,不可重复,也没有顺序

实现方式:HashSet,TreeSet,

二者的比较:HashSet它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素

    TreeSet:对排序有更高的要求时使用。

HashSet:有下面的例子可以看出,输出的结果是无序的。

结果:

 

Map:实现了的Map接口,以键值对的形式存在,其中键不可重复,值可以重复。但是在代码中,如果键写重复了并不会报错,值会覆盖了之前键所对应的值。

例如:map.put(“1”,“A”);map.put(“1”,“B”);map.put(“1”,“C”);那么此时,最后一个就把之前两个覆盖了。也相当于完成了修改的功能。

实现方式:4种,分别是HashMap;TreeMap;HashTable;LinkedHashMap;

四者的比较:

  HashMap:

    • 线程不安全,效率高。允许null键和null值
    • 是基于哈希表的Map接口实现。哈希表的作用是用来保证键的唯一性的。
    • 常用实例化方法: 
             new HashMap< Object, Object>();

 

  

Hashtable:

  • 线程安全,效率低。不允许null键和null值

  

LinkedHashMap:

    • 是基于Map接口的哈希表和链接列表实现,有序
    • 由哈希表保证键的唯一性
    • 由链表保证键盘的有序(存储和取出的顺序一致)
    • 常用实例化方法: 
             new LinkedHashMap< Object, Object>();

treeMap:

    • TreeMap:是基于红黑树的Map接口的实现。
    • 构造方法: 
             TreeMap() 使用键的自然顺序构造一个新的、空的树映射。 
             TreeMap(Comparator< ? super K> comparator) 构造一个新的、空的树映射,该映射根据给定比较器进行排序

HashMap

TreeMap

HashTable

LinkedHashMap

 

转载于:https://www.cnblogs.com/hanmengdi/p/9546814.html

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

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

相关文章

20155320《网络对抗》Exp4 恶意代码分析

20155320《网络对抗》Exp4 恶意代码分析 【系统运行监控】 使用schtasks指令监控系统运行 首先在C盘目录下建立一个netstatlog.bat文件&#xff08;由于是系统盘&#xff0c;所以从别的盘建一个然后拷过去&#xff09;&#xff0c;用来将记录的联网结果格式化输出到netstatlog.…

tableau 自定义省份_在Tableau中使用自定义图像映射

tableau 自定义省份We have been reading about all the ways to make our vizzes in Tableau with more creativity and appeal. During my weekly practice for creating viz as part of makeovermonday2020 community, I came across geographical data which in way requir…

2055. 蜡烛之间的盘子

2055. 蜡烛之间的盘子 给你一个长桌子&#xff0c;桌子上盘子和蜡烛排成一列。给你一个下标从 0 开始的字符串 s &#xff0c;它只包含字符 ‘’ 和 ‘|’ &#xff0c;其中 ’ 表示一个 盘子 &#xff0c;’|’ 表示一支 蜡烛 。 同时给你一个下标从 0 开始的二维整数数组 q…

Template、ItemsPanel、ItemContainerStyle、ItemTemplate

原文:Template、ItemsPanel、ItemContainerStyle、ItemTemplate先来看一张图(网上下的图&#xff0c;加了几个字) 实在是有够“乱”的&#xff0c;慢慢来理一下&#xff1b; 1、Template是指控件的样式 在WPF中所有继承自contentcontrol类的控件都含有此属性&#xff0c;&#…

熊猫烧香分析报告_熊猫分析进行最佳探索性数据分析

熊猫烧香分析报告目录 (Table of Contents) Introduction 介绍 Overview 总览 Variables 变数 Interactions 互动互动 Correlations 相关性 Missing Values 缺失值 Sample 样品 Summary 摘要 介绍 (Introduction) There are countless ways to perform exploratory data analys…

2060. 同源字符串检测

2060. 同源字符串检测 原字符串由小写字母组成&#xff0c;可以按下述步骤编码&#xff1a; 任意将其 分割 为由若干 非空 子字符串组成的一个 序列 。 任意选择序列中的一些元素&#xff08;也可能不选择&#xff09;&#xff0c;然后将这些元素替换为元素各自的长度&#x…

vue中的data用return返回

为什么在大型项目中data需要使用return返回数据呢&#xff1f;答&#xff1a;不使用return包裹的数据会在项目的全局可见&#xff0c;会造成变量污染&#xff1b;使用return包裹后数据中变量只在当前组件中生效&#xff0c;不会影响其他组件。 1、在简单的vue实例中看到的Vue实…

白裤子变粉裤子怎么办_使用裤子构建构建数据科学的monorepo

白裤子变粉裤子怎么办At HousingAnywhere, one of the first major obstacles we had to face when scaling the Data team was building a centralised repository that contains our ever-growing machine learning applications. Between these projects, many of them shar…

ubuntu+anaconda+tensorflow 及相关问题

配置tensorflow部分参考&#xff1a;https://blog.csdn.net/XUTIAN1129/article/details/78997633 装完anaconda, source ~/.bashrc后, 可以直接 pip install tensorflow-gpu , 珍爱生命&#xff0c;远离bazel。但想要c/c调用tf的时候远离不了&#xff0c;还是得bazel编译安装t…

2022. 将一维数组转变成二维数组

2022. 将一维数组转变成二维数组 给你一个下标从 0 开始的一维整数数组 original 和两个整数 m 和 n 。你需要使用 original 中 所有 元素创建一个 m 行 n 列的二维数组。 original 中下标从 0 到 n - 1 &#xff08;都 包含 &#xff09;的元素构成二维数组的第一行&#xf…

支持向量机SVM算法原理及应用(R)

支持向量机SVM算法原理及应用&#xff08;R&#xff09; 2016年08月17日 16:37:25 阅读数&#xff1a;22292更多 个人分类&#xff1a; 数据挖掘实战应用版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请注明来源。 https://blog.csdn.net/csqazwsxedc/article/detai…

mad离群值_全部关于离群值

mad离群值An outlier is a data point in a data set that is distant from all other observations. A data point that lies outside the overall distribution of the dataset. Or in a layman term, we can say, an outlier is something that behaves differently from th…

2057. 值相等的最小索引

2057. 值相等的最小索引 给你一个下标从 0 开始的整数数组 nums &#xff0c;返回 nums 中满足 i mod 10 nums[i] 的最小下标 i &#xff1b;如果不存在这样的下标&#xff0c;返回 -1 。 x mod y 表示 x 除以 y 的 余数 。 示例 1&#xff1a;输入&#xff1a;nums [0,1,2…

SpringBoot中各配置文件的优先级及加载顺序

我们在写程序的时候会碰到各种环境(开发、测试、生产)&#xff0c;因而&#xff0c;在我们切换环境的时候&#xff0c;我们需要手工切换配置文件的内容。这大大的加大了运维人员的负担&#xff0c;同时会带来一定的安全隐患。 为此&#xff0c;为了能更合理地重写各属性的值&am…

青年报告_了解青年的情绪

青年报告Youth-led media is any effort created, planned, implemented, and reflected upon by young people in the form of media, including websites, newspapers, television shows, and publications. Such platforms connect writers, artists, and photographers in …

post提交参数过多时,取消Tomcat对 post长度限制

1.Tomcat 默认的post参数的最大大小为2M&#xff0c; 当超过时将会出错&#xff0c;可以配置maxPostSize参数来改变大小。 从 apache-tomcat-7.0.63 开始&#xff0c;参数 maxPostSize 的含义就变了&#xff1a; 如果将值设置为 0&#xff0c;表示 POST 最大值为 0&#xff0c;…

2048. 下一个更大的数值平衡数

2048. 下一个更大的数值平衡数 如果整数 x 满足&#xff1a;对于每个数位 d &#xff0c;这个数位 恰好 在 x 中出现 d 次。那么整数 x 就是一个 数值平衡数 。 给你一个整数 n &#xff0c;请你返回 严格大于 n 的 最小数值平衡数 。 示例 1&#xff1a;输入&#xff1a;n …

bzoj1222: [HNOI2001]产品加工

一开始以为是费用流。。然后搞不出来&#xff0c;路牌是DP&#xff0c;想一想 f[i][j]表示加工到第i个产品&#xff0c;然后A用时j&#xff0c;B用时的最小值 那么f[i][j]max(f[i-1][j-a[i]],f[i-1][j]b[i],f[i-1][j-c[i]]c[i]) 滚掉一维美滋滋 #include<cstdio> #includ…

map(平均平均精度_客户的平均平均精度

map(平均平均精度Disclaimer: this was created for my clients because it’s rather challenging to explain such a complex metric in simple words, so don’t expect to see much of math or equations here. And remember that I try to keep it simple.免责声明 &#…

Sublime Text 2搭建Go开发环境,代码提示+补全+调试

本文在已安装Go环境的前提下继续。 1、安装Sublime Text 2 2、安装Package Control。 运行Sublime&#xff0c;按下 Ctrl&#xff08;在Tab键上边&#xff09;&#xff0c;然后输入以下内容&#xff1a; import urllib2,os,hashlib; h 7183a2d3e96f11eeadd761d777e62404 e330…