java中Collection集合、Iterator迭代器接口、for each循环遍历集合或对象

Collection集合:

概念:集合是java中提供一种存储多个数据的容器;数组也是存储数据的容器,集合和数组的区别就是集合的长度可以改变,而数组的长度不可以改变;集合可以存储多种类型的对象数据,而数组只能存储同种类型的数据;集合只能存储对象类型数据,而数组可以存储存储基本类型数据或对象数据,但是不能存储在同一个数组中;集合有很多种,ArrayList集合只是其中一个;

集合框架(集合架构)

有的集合中存在共同的特点,java中把共同的特点抽取为一个父类(接口),集合中有两个接口,分别为List接口和Set接口,其中List接口的子类有:

Vector集合:后面介绍

ArrayList集合:前面已介绍

LinkedList集合:后面介绍

List接口特点:有序的集合(存储和取出元素顺序相同)、允许储存重复元素、有索引,可通过for循环遍历;

Set接口的子类有:

TreeSet集合:后面介绍

HashSet集合:后面介绍

LinkedHashSet集合:后面介绍

Set接口特点:不允许储存重复元素、没有索引,不能通过简单的for循环遍历
在这里插入图片描述
List接口和Set接口也有父类接口(Collection接口,位于java.util下,是集合中最顶层的接口),Collection接口定义所有集合中共同的方法,没有带索引的方法,它们的方法都可以被这些单集合使用,常用共同方法如:

add添加元素到当前集合中,返回布尔值、

clear清空集合中所有的元素、

remove移除某个元素、

contains判断集合中是否包含某元素、

isEmpty判断当前集合是否为空集合、

size返回集合中元素的个数、

toArray将集合转换为数组,原集合不变

//1.导入Collection包和ArrayList包:
import java.util.Collection;
import java.util.ArrayList;
public class CollectionInterface{public static void main(String[] args){// 2.创建集合对象:Collection<String> collections = new ArrayList<>();//父类指向子类对象,多态的形式创建对象(集合的对象),这里的单集合可以是Collection下的任意一个单集合,并且下面的方法通用。System.out.println(collections); //[],返回一个空,说明覆盖重写了toString方法。//3.Collection中常用方法://3-1:add(),添加元素到集合中,并返回布尔值,成功返回true,如:collections.add("苦海");collections.add("疾苦");collections.add("世俗");System.out.println(collections.add("地狱"));//trueSystem.out.println(collections); //[苦海, 疾苦, 世俗, 地狱]// 3-2:remove(),移除某个元素,返回布尔值,如:System.out.println(collections.remove("世俗"));//true,集合中有这个值则移除成功并返回true,如果没有这个值,则移除失败,返回falseSystem.out.println(collections); //[苦海, 疾苦, 地狱]// 3-3:contains(),判断是否包含某个元素,如:System.out.println(collections.contains("苦海"));//trueSystem.out.println(collections.contains("世俗"));//false// 3-4:isEmpty(),判断当前集合是否为空集合,返回布尔值,如:System.out.println(collections.isEmpty());//false// 3-5:size(),返回当前集合元素的个数,如:System.out.println(collections.size());//3// 3-6:toArray(),将集合转换为数组并返回,注意这里是创造出新的数组,原集合不变,如:System.out.println(collections.toArray()[0]);//苦海,调用数组的第一个元素,直接打印数组为地址值System.out.println(collections);//[苦海, 疾苦, 地狱]// 3-6:clear(),清除集合中的元素,如:collections.clear();System.out.println(collections);//[]};
};

Iterator迭代器接口:

迭代器是集合中通用的取出元素的对象,Iterator位于java.util包下;

迭代器工作原理:取元素之前先判断集合中是否有元素,如果有,则取出,之后继续判断是否有元素,如果还有,那么继续取出,一直这样循环,直到没有元素时停下,这也称为迭代。

常用方法:迭代器中有两个常用方法:hasNext判断集合中是否有元素和Next取出集合中下一个元素;

// 1.导包:
import java.util.Vector;
import java.util.Collection;
import java.util.Iterator;
public class IteratorInterface{public static void main(String[] args){// 2.迭代器的使用步骤:// 2-1:Iterator是一个接口,需要实现类对象才可以使用,但是Collection中提供了方法iterator即可返回迭代器(多态)// 2-2:使用Iterator中的hasNext方法判断集合中是否还有元素,有则执行第三步,否则结束迭代过程// 2-3:使用Iterator中的next方法取出下一个元素,如:Collection<String> collections = new Vector<String>();//创建一个集合对象collections.add("2米");//添加元素collections.add("5米");collections.add("8米");Iterator<String> iterators = collections.iterator();//获取迭代器,迭代器也有泛型,其类型应和集合保持一致,如String;接口=实现类,多态while(iterators.hasNext()){//结合循环进行迭代System.out.println(iterators.next());/*  2米5米8米*/};      // 3.java中for each循环,专用于遍历集合或对象,其语法使用如下:for(String str : collections){//语法:str为变量(变量名自定义)代表集合或对象中的元素或属性或方法,前面用修饰符进行修饰 :集合或对象System.out.println("for循环遍历:" + str);}};
};

提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者删除。
笔者:苦海

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

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

相关文章

工业镜头选型计算公式_变压器分接开关选型指南

如何选择变压器适用的分接开关型号&#xff1f;选型中又有哪些值得注意的事项呢&#xff1f;小编特别整理提炼了分接开关选型指南&#xff0c;让我们一起来看一下。分接开关的产品型号示例如下&#xff1a;型号中的各项参数和规格可通过以下步骤计算确定&#xff1a;1、确定调压…

icmp端口_pingtunnel搭建icmp隧道

说明pingtunnel可以将udp、tcp、sock5流量伪装成icmp传输&#xff0c;地址&#xff1a;https://github.com/esrrhs/pingtunnel/&#xff0c;详细说明和用法可参考官方说明。示例图客户端运行在攻击机&#xff0c;服务端运行在受害机。情况如下&#xff1a;通过pingtunnel搭建一…

node中使用短信验证功能(阿里云为例)

一、选择短信平台 短信平台有很多&#xff0c;这里我选择阿里云&#xff0c;详细步骤如下&#xff1a; 进入短信控制台&#xff0c;对要发送的短信格式进行配置&#xff0c;如果没有签名&#xff0c;需要申请签名后操作&#xff08;注意&#xff1a;需要自己已有阿里云账号且实…

如何画圆柱_什么是最速降线?如何来验证一下呢?这里用SolidWorks来试一试

一个仅受重力的物体&#xff0c;从一个点出发&#xff0c;沿着一条没有摩擦的斜坡滚动到另外一个点。肯定有一个斜坡使物体运动的时间最短。这个斜坡所在的曲线就是“最速降线”。关于这个最速降线是怎么计算出来&#xff0c;我并不知道&#xff0c;但是他有一个结论&#xff0…

根据用户id查询菜单列表(菜单权限问题)

根据用户id查询菜单列表&#xff08;菜单权限问题&#xff09;&#xff1a; 最高级用户菜单效果图&#xff1a; 较低级别用户菜单效果图&#xff1a; SQL语句分析图&#xff1a; 根据用户id查询对应菜单&#xff08;权限&#xff09;SQL语句&#xff1a; SELECT * FROM us…

pycharm中配置r语言_【R语言】R语言中的循环

编程中减少代码重复的两个工具&#xff0c;一是循环&#xff0c;一是函数。循环&#xff0c;用来处理对多个同类输入做相同事情&#xff08;即迭代&#xff09;&#xff0c;如对不同列做相同操作、对不同数据集做相同操作。R语言有三种方式实现循环&#xff1a;&#xff08;1&a…

钉钉api 获取 accesstoken_Thinkphp5.X异常接管后通过钉钉机器人推送通知

大多团队在生产环境下都会关闭app_debug&#xff0c;所以相对应的错误信息就不能实时查看到。以下分享一个目前团队项目正在用的生产环境下相关技术人员能第一时间获取通知的方法&#xff1a;先上效果图&#xff1a;以上通知是在钉钉中显示&#xff01;下面介绍开发步骤&#x…

js中将有层级关系的一维数据转换为父子级关系的二维数据、菜单权限三级层级数据实现(树形结构数据)

很久没有发文了&#xff0c;今天发点不一样的&#xff0c;如下&#xff1a; <script>// 一维数据&#xff1a;let arrData[{ r_id: 1, role_name: 开发商, n_id: 1, txt: 主页 },{ r_id: 1, role_name: 开发商, n_id: 2, txt: 项目 },{ r_id: 1, role_name: 开发商, n_id…

修改器内置脚本编写_Node.js 中实践 Redis Lua 脚本

对别人的意见要表示尊重。千万别说&#xff1a;"你错了。"——卡耐基Lua 是一种轻量小巧的脚本语言&#xff0c;用标准 C 语言编写并以源代码形式开放&#xff0c;其设计目的是为了嵌入应用程序中&#xff0c;从而为应用程序提供灵活的扩展和定制功能。由于 Lua 语言…

项目上线,部署到服务器(腾讯服务器),http协议及https协议(微信小程序必须https协议才可发布)

一、准备服务器&#xff1a; 1.选择自己的服务器&#xff0c;这里有很多服务器比如&#xff0c;阿里服务器&#xff0c;腾讯服务器等&#xff0c;这里我选择腾讯服务器做测试&#xff0c;其官网&#xff1a;https://cloud.tencent.com/&#xff0c;微信扫码登录后如下进入首页…

队列的基本操作_算法与数据结构(五) 栈和队列

? 工欲善其事&#xff0c;必先利其器。栈和队列 - Stack And Queue栈如何理解栈呢&#xff1f;后进者先出&#xff0c;先进者后出&#xff0c;这就是典型的 "栈" 结构。04_栈和队列-栈结构从栈的操作特性上来看&#xff0c;栈是一种“操作受限”的线性表&#xff0c…

八邻域轮廓跟踪算法_结合mRMR选择和IFCM聚类的遥感影像分类算法

随着遥感成像技术的发展&#xff0c;高分遥感影像空间分辨率逐年提高&#xff0c;已经成为获取地物信息的主要数据来源之一。高分影像分类作为遥感影像处理的重要任务之一&#xff0c;在地理国情普查与监测、数字城市建设、城市规划等领域具有广阔的应用前景。高分影像具有纹理…

node.js中net模块、node实现tcp通信

node.js中net 一、net模块感知&#xff1a; net模块用于创建基于TCP&#xff08;或IPC&#xff09;通信的服务器或客户端&#xff0c;它是nodejs内置模块&#xff0c;直接使用require(‘net’)的方式引入&#xff0c;类似http模块。 二、创建一个tcp服务器&#xff1a; //1…

struts2--文件上传大小

struts2--文件上传大小 Struts2文件上传的大小限制问题 问题&#xff1a;上传大文件报错……解决&#xff1a;修改struts.xml文件中的参数如下<constant name"struts.multipart.maxSize" value"55000000"/><action name"UploadFile" cl…

element-plus中导航高亮不自动刷新问题

解决使用element-plus el-submenu时页面被this.$router.push(“xxx”)跳转后&#xff0c;导航菜单高亮不能自动刷新问题&#xff0c;需要注意以下几点&#xff1a; 在el-menu加上routerindex必须绑定路由的path,参考上面的例子&#xff0c;/不能少default-active设为当前路由&…

计算机二级考试python怎么报名_计算机二级报名流程和条件

对于第一次参加全国计算机二级考试的考生来说&#xff0c;他们对于计算机二级报名流程和条件不是清楚&#xff0c;小编这就来给大家梳理一下。计算机二级报名流程 一、报名 分为网上报名和现场报名。 网上报名&#xff1a;考生在规定时间内登录本省计算机资格网站&#xff0c;按…

操作对象_DOM进阶——HTML属性操作(对象属性)

上一节我们在“DOM基础”学习了对元素节点的操作&#xff0c;这两节介绍对属性节点的操作。属性节点操作有两种方式&#xff0c;一种是使用“对象属性”&#xff0c;另一种是“对象方法”。本节主要介绍“对象属性”的方式。对属性节点的操作涉及两种操作&#xff0c;分别是获取…

三级菜单数据实现,实现嵌套三级菜单数据

//将数据库中通过关联&#xff08;inner join&#xff09;查询多张表没有嵌套但有嵌套关系的数据进行处理&#xff0c;得到具有嵌套层级且嵌套的父级二级属性不可重复出现&#xff0c;具体实现如下&#xff1a;// 通过关联查询到数据库的数据&#xff08;格式&#xff09;&…

sap相关性不能被编译_经典综述编译丨生物硝化抑制丨NAT PLANTS:现代农业中的氮转化和生物硝化抑制作用...

点击蓝字↑↑↑“农作未来(FarmingFuture)”&#xff0c;轻松关注&#xff0c;农作制度研究与您同行&#xff01;编译&#xff1a;贾蓉 排版&#xff1a;王上原创微文&#xff0c;欢迎转发转载。文章信息原名&#xff1a;Nitrogen transformations in modern agriculture and …

Hadoop学习笔记(一)从官网下载安装包

Hadoop是一个分布式系统基础架构&#xff0c;由Apache基金会所开发。用户能够在不了解分布式底层细节的情况下&#xff0c;开发分布式程序。充分利用集群的威力进行快速运算和存储。要学习Hadoop从下载安装包開始打开Hadoop的官方站点&#xff0c;点击Download Hadoop或点击“G…