java集合(1)-概述

  Java集合类是一种特别有用的工具类,可用于存储数量不等的对象,并可以实现常用的数据结构,如栈,队列等,此外Java集合还可以用于保存具有映射关系的关联数组.java集合大致可分为Set,List,Queue和Map四种体系,其中Set代表无序,不可重复的集合;List代表有序,重复的集合;而Map则代表具有映射关系的集合,Java5又增加了Queue体系集合,代表一种队列集合实现.

  Java集合就像是一个容器,Java5之前Java集合会丢失容器中所有对象的数据类型,把所有对象都当成Object类型处理,Java5增加了泛型之后,Java集合可以记住容器中,对象的数据类型.

  所有的Java集合工具类也被称为容器类,位于java.util包下,后来为了处理多线程环境下的并发安全问题,Java5还在java.util.concurrent包下提供了一些多线程支持的集合类.

  集合与数组不一样,数组元素既可以是基本类型值,也可以是对象(实际保存的对象的引用变量);而集合里只保存对象(实际只是保存对象的引用变量,但通常习惯上认为集合里保存的是对象)

  Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或者实现类.

  Collection体系:

  Map体系;所有的Map实现类用于保存具有映射关系的数据(也就是前面介绍的关联数组),Map中保存的每项数据都是key-value对,Map中的key是不可重复的,key用于标识.

 

  Collection与Map体系标识的四个接口,可以把Java所有集合分成三大类,其中Set集合类似于一个罐子,把对象添加到Set集合时,Set集合无法记住添加这个元素的顺序,所有Set里的元素不能重复(否则系统无法准确识别这个元素);List集合非常像一个数组,它可以记住每次添加元素的顺序,且List的长度可变.Map集合也像一个罐子,只是它里面的每项数据都由两个值组成.

 

  对于Set,List,Queue和Map四种集合,最常用的实现类分别是HashSet,TreeSet,ArrayList,ArrayDeque,LinkedList和HashMap,TreeMap.

 

转载于:https://www.cnblogs.com/shadow-shine/p/9695021.html

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

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

相关文章

UVA1262Password(第K字典序)

题目链接 紫书P323 题意:两个6*5的字母矩阵,两个矩阵每列相同的字母,每列取一个,求按照字典序第k小的序列 分析: 对于第一个样例来说,我们得到{ACDW}、{BOP}、{GMOX}、{AP}、{GSU} 则一共有43423288种密码&…

自定义 View 循环滚动刻度控件

LoopScaleView 先看效果图: enter description hereLoopScaleView 是一个自定义的刻度尺风格的选值控件,从上面的动图大家可以看到 LoopScaleView 的运行效果.可以设置屏幕内显示的刻度数,也可以设置每一个刻度代表的值得大小。 LoopScaleView.class Nested class OnValueChang…

go 类型断言_(57)接口的类型断言

GO提供了一个方法,用来判断接口的底层值是什么类型类型断言 提供了访问接口值底层具体值的方式。t : i.(T)该语句断言接口值 i 保存了具体类型 T,并将其底层类型为 T 的值赋予变量 t。若 i 并未保存 T 类型的值,该语句就会触发一个panic。为了…

使用web3j构建以太坊钱包

创建一个以太坊钱包有多种方式,一般情况下可以通过geth、EtherumWallet等客户端。对于前端,可以使用插件MetaMask进行创建。这几种方式技术实现虽然不同,但底层原理是一致的。本文主要介绍如何通过web3j架构创建一个以太坊的冷钱包&#xff0…

Html、CSS、JavaScript 实时效果在线编辑器 - 学习的好工具,算不算?!

关于 二维码 与 NFC 之间的出身贫贱说太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es)本文遵循“署名-非商业用途-保持一致”创作公用协议转载请保留此句:太阳火神的漂亮人生 - 本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、…

android自定义更新,Android 完美解决自定义preference与ActivityGroup UI更新的问题

之前发过一篇有关于自定义preference 在ActivityGroup 的包容下出现UI不能更新的问题,当时还以为是Android 的一个BUG 现在想想真可笑 。其实是自己对机制的理解不够深刻,看来以后要多看看源码才行。本篇讲述内容大致为如何自定义preference 开始到与Act…

vxlan 资料及其在 neutron中的应用

2019独角兽企业重金招聘Python工程师标准>>> VXLAN 是一个新兴的SDN 标准,它定义了一种新的 overlay 网络,它主要的创造者是 VMware, Cisco 和 Arista。它被设计来消除虚拟化网络世界中的 VLAN 数目的限制。VXLAN 本身是一个多播标准&#xf…

横流式冷却塔计算风量_研讨丨卓展标准高效制冷机房技术之影响冷却塔效率的几个因素...

集中制冷用空调系统中,单台冷却塔的冷却水量基本上都小于1,000m/h,且装有淋水填料的横流机械通风开式居多。本文将已横流开式冷却塔为对象,探讨影响其效率的几个因素。横流开式冷却塔示意图如下所示:横流开式冷却塔示意图 Fig 01说…

我是培训出来的我怕谁

引子: 江小峰是我带过的徒弟中跟我最久,也是最聪明的一个。 他一个高中生,没上过大学,高中毕业后在老家卖了三年电脑,天天给人装操作系统,有天他在网上看到某培训机构招生简介,一时冲动揣上三年血汗钱&…

android平台gallery2应用分析,Android5.1图库Gallery2代码分析数据加载流程

图片数据加载流程。Gallery---->GalleryActivity------>AlbumSetPage------->AlbumPage--------->PhotoPage相册集 照片集 某张图片1,AlbumSetPage.javaprivate void initializeData(Bundle data) {String mediaPath data…

python开课吧1980课程_开课吧的课程怎么样?

就那那些编程开发课来说。现在网络上充斥着大量的编程开发课程,什么python的,java的,c的,而且名字一个比一个夸张,21天精通c,7天熟练运用java,3天掌握python核心代码,这些课程标题简…

专业概念

1.JDBC: java数据库连接(JDBC)用于在java程序中实现数据库的操作功能,它提供了执行sql语句,访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口,java.sql包中 包含了jdbc操作数据库的所有类 2.…

前端解决跨域问题的8种方案

2019独角兽企业重金招聘Python工程师标准>>> 1.同源策略如下: URL说明是否允许通信http://www.a.com/a.js http://www.a.com/b.js同一域名下允许http://www.a.com/lab/a.js http://www.a.com/script/b.js同一域名下不同文件夹允许http://www.a.com:8000/…

k歌的录音伴奏合成技术如何实现_K歌神器,用唱吧麦克风攀登天籁高峰

自从喜欢上了手机K歌,经常会上传一些自己的作品,起初无论音质如何都是乐在其中,可时间久了发现回放效果确实不如那榜单上的高手,究其原因想到了麦克风,网上一搜果然有各种K歌辅助工具,多番对比之下&#xf…

浅谈内存开辟问题和Block内存问题

我们知道,内存分为栈,堆,块。 栈中的内存由系统自己释放,堆是存对象初始化的地方,块是CPU与内存连接的缓冲器,运行速度比内存快,比CPU慢。 例如,我们NSMutableArray *array [NSMuta…

vue render函数_Vue原理解析(一):Vue到底是什么?

Vue,现在前端的当红炸子鸡,随着热度指数上升,实在是有必要从源码的角度,对它功能的实现原理一窥究竟。个人觉得看源码主要是看两样东西,从宏观上来说是它的设计思想和实现原理;微观上来说就是编程技巧&…

scrapy爬虫-setting.py

# Obey robots.txt rulesROBOTSTXT_OBEY False  不遵从网站的robots.txt法则 # See also autothrottle settings and docsDOWNLOAD_DELAY 3  每次下载延迟3秒,防止造成网站攻击 # Override the default request headers:DEFAULT_REQUEST_HEADERS { Accept:…

android点击左上角划出,使用Android中的Path和RectF在左上角右上角左下角绘制圆角...

有一个Path#addRoundRect()重载,它接受一个包含八个值的float数组,其中我们可以为四个角中的每一个指定x和y半径.这些值为[x,y]对,从左上角开始,顺时针绕其余部分.对于我们想要舍入的那些角,我们将该对的两个值都设置为半径值,并将它们保留为零,而不是那些.作为一个说明性示例,…

Nodejs微信开发

因为使用了Bot Framework开发了一个小功能,它目前支持了Skype\Teams\Slack等,但在国内来讲,微信还是一个比较流行的软件,所以需要接上微信 原来开发Bot的时候使用的是.Net开发的,这次我决定使用Nodejs开发一个简单的后…

性别有什么用_为啥不让男孩玩布娃娃?别让你的“性别偏见”,给孩子的人生设限...

在养育孩子的过程中,父母总是会犯许多错误,更是有一些错误会直接使孩子毁掉一生,而性别偏见正是很多家长都会去犯的错误,对男孩和女孩有着刻板印象,也正是因为这一点使孩子的潜力和天赋被压制。前几天我带着孩子去逛商…