文档章节

Java集合(一):简介

yuhuan121
 yuhuan121
发布于 2017/08/23 01:21
字数 839
阅读 5
收藏 0
点赞 0
评论 0

1、概述

1.1、概念

Java集合类是一种特别有用的工具类,可用于存储数量不等的对象,并可以实现常用的数据结构,比如栈、对象等。此外,还可用于保存具有映射关系的关联数组。

1.2、优势

在我们的日常编程中,经常要集中存放多个数据。可以用数组来保存多个对象,但是数组的长度在初始化时就是不可变化的。此时,如果想要保存数量变化的数据,数组就无能无力了,而且,数组不能保存具有映射关系的数据。 数组元素可以是基本类型的值,也可以是对象(实际保存的是对象的引用);集合类只能保存对象。

1.3、分类

主要分为四种体系:

  • Set:代表无序、不可重复的集合;
  • List:代表有序、重复的集合;
  • Map:代表具有映射关系的集合;
  • Queue:代表一种队列集合的实现;

Set集合类相当于一个罐子,一个对象添加到Set集合时,集合不能记住添加这个元素的顺序,所以Set里的元素不能重复。若访问其中的元素,只能根据元素本身访问; List集合像一个数组,可以记住每次添加元素的顺序,且长度可变。若访问其中元素,可以根据元素的索引访问; Map也像一个罐子,里面的数据由两个值组成:key和value,可以根据每项元素的key来访问其value;

2、Collection接口

Java的集合类主要由两个接口派生而出:Collection和Map,是Java集合框架的根接口,又包含了一系列的子接口。

2.1、Collection接口的继承树

输入图片说明

2.2、Collection接口的基本操作

由于Collection接口是List、Set、Queue接口的父接口,其方法可以操作这三个集合,常见的方法如下:

  • boolean add(object o):向集合里添加一个元素; -void addAll(Collection c):把集合c里的所有元素添加到指定集合里; -boolean clear():清楚集合里所有元素;
  • boolean contains(object o):返回集合里是否包含所有元素;
  • boolean containsAll(Collection cobject o):返回集合里是否包含集合c里的所有元素;
  • boolean isEmpty():返回集合是否为空;
  • Iterator iterator():返回一个Iterator对象,用于遍历集合里的元素;
  • boolean remove(object o):删除集合中指定元素o,若包含多个o时,只删除第一个符合条件的元素;
  • boolean removeAll(Collection c):从集合中删除集合c里包含的所有元素;
  • boolean retainAll(Collection c):从集合中删除集合c里不包含的元素;
  • int size():返回集合里元素的个数;
  • Object[] toArray():把集合转换成一个数组;

所有的Collection类都重写了toString()方法,可一次性地输出集合中的所有元素;

2.3、Collection的遍历

2.3.1、使用forEach()

2.3.2、使用Iterator接口

它是Collection接口的父接口,Iterator必须依附于Collection对象。 定义了3个方法:

  • boolean hasNext():若被迭代的元素还没被遍历完,则返回true;
  • Object next():返回集合里的下一个元素;
  • void remove():删除集合里上一次next方法返回的元素;

© 著作权归作者所有

共有 人打赏支持
yuhuan121
粉丝 0
博文 36
码字总数 38704
作品 0
佛山
程序员
Google的Guava类库简介(转)

说明:信息虽然有点旧,至少可以先了解个大概。 Guava是一个Google的基于Java的类库集合的扩展项目,包括collections, caching, primitives support, concurrency libraries, common annotat...

easonjim ⋅ 2017/11/01 ⋅ 0

阿里年薪50WJAVA工程师转大数据学习路线!

大数据有两个方向,一个是偏计算机的,另一个是偏经济的。你学过Java,所以你可以偏将计算机的。 Java程序员想转大数据可行吗?Java是全世界使用人数最多的编程语言。不少程序员选择Java做为...

JAVA丶学习 ⋅ 04/25 ⋅ 0

CentOS7.X安装JDK-1.8.0

JAVA_JDK安装 JAVA_JDK简介 Java SE、Java EE、Java ME区别 安装JAVA_JDK准备 检查是否安装JDK 卸载已安装JDK YUM安装JAVA_JDK yum安装jdk 检查安装是否成功 源码安装JAVA_JDK 命令行下载 JD...

qq2233466866 ⋅ 06/11 ⋅ 0

阿里获邀加入 JCP ,参与制定 Java 全球标准和技术规范

2018年5月17日,作为唯一中国代表,阿里巴巴获邀加入 Java 全球管理组织 Java Community Process (JCP) 的最高执行委员会。此次获得执行委员会席位,让中国企业首次加入到 Java 全球标准的制...

王练 ⋅ 05/17 ⋅ 5

燃!Java全球标准中国人参与制定,阿里成首个受邀中国公司

2018年5月17日,作为唯一中国代表,阿里巴巴获邀加入Java全球管理组织Java Community Process (JCP)的最高执行委员会。此次获得执行委员会席位,让中国企业首次加入到Java全球标准的制定中,...

技术小能手 ⋅ 05/17 ⋅ 0

深入理解 ThreadLocal (这些细节不应忽略)

前言 对于 ThreadLocal 的使用,并不难。但要深入理解 ThreadLocal 的实现方式,需要细细揣摩。写本文前,我在网上看了很多关于 ThreadLocal 的分析,但却感到遗憾,因为很多文章存在着一定误...

徐志毅 ⋅ 04/11 ⋅ 0

Java编程基础知识点和技术点归纳

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

Java小辰 ⋅ 05/23 ⋅ 0

甲骨文开源Java 性能监控调试工具 JMC

JMC (Java Mission Control) 是Oracle开源的Java 性能监控调试工具, 源自 JRockit JVM , 主要由三个组件构成:Java 进程浏览器、JMX 控制台和 Java Flight 记录器。 主要特性: Java 进程浏览...

marsdream ⋅ 05/07 ⋅ 0

百词斩Java程序员面试11个问题,你会几个?2018-04-10

近日,我们在w3cschool app开发者头条上,可以看到百词斩Java程序员面经。 在分享百词斩Java面经前,w3cschool特别给程序员小伙伴们带来一些Java学习干货: 0、学习Java必备的3大神器 如果你...

W3Cschool ⋅ 04/10 ⋅ 0

重磅!Java 性能监控调试工具 JMC 宣布开源

JRockit JVM 创始人之一、Oracle Java 产品组成员 Marcus Hirt 昨日在其博客上宣布,Java Mission Control(JMC)的源代码已正式开源。 JMC 是源自 JRockit JVM 的一套监控和管理工具,Oracl...

王练 ⋅ 05/07 ⋅ 6

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Android JNI 读写Bitmap的方法

Java层创建Bitmap,通过JNI将Bitmap传到C/C++进行处理 Java部分 public static native boolean greenBitmap(Bitmap bitmap); C/C++部分 JNIEXPORT jboolean JNICALL Java_com_test_Test_gree......

国仔饼 ⋅ 13分钟前 ⋅ 0

一次性让你懂async/await,解决回调地狱

什么是async? 欢迎留言讨论 async 函数是 Generator 函数的语法糖。使用 关键字 async 来表示,在函数内部使用 await 来表示异步。相较于 Generator,async 函数的改进在于下面四点: 内置执...

阿K1225 ⋅ 13分钟前 ⋅ 0

angular常用命令

.下载更新操作 1.利用npm下载angular的命令行工具AngularCLI: npm install -g @angular/cli 2.下载jquery: npm install --save jquery 3.更新npm: npm i -g npm 4.更新angular: ng update ......

消散了的诗意 ⋅ 15分钟前 ⋅ 0

window.print 页面打印

定义和用法 print() 方法用于打印当前窗口的内容。 语法 window.print(); window.print() 实际上,是浏览器打印功能菜单的一种程序调用。与点击打印功能菜单一样,不能精确分页,不能设置纸型...

初学者的优化 ⋅ 16分钟前 ⋅ 0

魔兽世界 7.0版本上 PVE装备全攻略

  T套 因为大家应该都会打穿副本的所以具体是哪个boss我就不说了。   T1: 所有套装都在【熔火之心】出   T2: 头原来是在【奥妮克希亚的巢穴】改到黑翼之巢的奈法利安了,腿是在【熔火之...

wangchen1999 ⋅ 16分钟前 ⋅ 0

java.math.BigDecimal使用小结

原文地址 java.math.BigDecimal使用小结 divide方法 使用BigDecimal.divide方法时一定要考虑: 除数是否为0 商是否是无限小数 正确的使用方式 判断除数是否为0,是0做另外的处理逻辑 调用除法...

666B ⋅ 19分钟前 ⋅ 0

关于qstring转char乱码问题。

if (OpenClipboard(NULL)) { HGLOBAL hgClip; EmptyClipboard(); QByteArray byay = FValue.toLocal8Bit(); //转latin编码 char *bochsrc_line = byay.data(); hgClip = GlobalAlloc(GMEM_DD......

backtrackx ⋅ 19分钟前 ⋅ 0

了解SSH加密和连接过程

介绍 SSH或安全shell是安全协议,也是安全管理远程服务器的最常用方式。通过使用多种加密技术,SSH提供了一种机制,用于在双方之间建立加密安全连接,对彼此进行身份验证,以及来回传递命令和...

吴伟祥 ⋅ 26分钟前 ⋅ 0

微信小程序

小程序的全局配置app.json 微信小程序的全局配置保存在app.json文件中。开发者通过使用app.json来配置页面文件(pages)的路径、窗口(window)表现、设定网络超时时间值(networkTimeout)以...

上官清偌 ⋅ 29分钟前 ⋅ 0

【转】百度坐标坐标系之间的转换(JS版代码)

/** * Created by Wandergis on 2015/7/8. * 提供了百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换 *///定义一些常量var x_PI = 3.1415926535897932...

HAVENT ⋅ 31分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部