Collection接口及遍历集合的方式Iterator接口、增强for循环的介绍和使用

Collection接口

  1. 概述:单列集合的顶级接口
  2. 格式:其中泛型决定了集合中能存储什么类型的数据,可以统一元素类型,泛型中只能写引用数据类型,如果不写,默认Object类型。等号前面的泛型必须写,等号后面的泛型可以不写,jvm会根据前面的泛型推导出后面的泛型是啥。
Collection<E> 对象名 = new 实现类对象<E>()

常用方法

  1. boolean add(E e) :将给定的元素添加到当前集合中(我们一般调add时,不用boolean接收,因为add一定会成功)
  2. boolean addAll(Collection<? extends E> c) :将另一个集合元素添加到当前集合中 (集合合并)
public class MyCollection {
    public static void main(String[] args) {
        Collection<Integer> collection = new ArrayList<>();
        collection.add(1);
        collection.add(2);
        System.out.println(collection);
        System.out.println("======================================");
        //boolean addAll(Collection<? extends E> c) :将另一个集合元素添加到当前集合中 (集合合并)
        Collection<Integer> collection1 = new ArrayList<>();
        collection1.add(3);
        collection1.add(4);
        collection1.addAll(collection);
        System.out.println(collection1);
    }
}

在这里插入图片描述

  1. void clear():清除集合中所有的元素
  2. boolean isEmpty() : 判断当前集合中是否有元素->判断集合是否为空
public static void main(String[] args) {
        Collection<Integer> collection = new ArrayList<>();
        collection.add(1);
        collection.add(2);
        System.out.println(collection);
        collection.clear();
        System.out.println("==================================");
        System.out.println(collection);
        System.out.println("==================================");
        System.out.println(collection.isEmpty());
        }
}

在这里插入图片描述

  1. boolean remove(Object o):将指定的元素从集合中删除
  2. int size():返回集合中的元素个数。
  3. Object[] toArray(): 把集合中的元素,存储到数组中
public class MyCollection {
    public static void main(String[] args) {
        Collection<Integer> collection = new ArrayList<>();
        collection.add(1);
        collection.add(2);
        System.out.println(collection);
        boolean result = collection.contains(3);
        System.out.println("result = " + result);
        System.out.println(collection.size());
        Object[] arr = collection.toArray();
        System.out.println(Arrays.toString(arr));

在这里插入图片描述

Iterator接口

Iterator接口与Collection接口不同,主要用于迭代访问Collection中的元素,因此Iterator对象也被称为迭代器。通过Collection接口中的iterotor()返回的迭代器的实现对象。

迭代器常用方法

  1. boolean hasNext():判断集合中有没有下一个元素
  2. E next():获取下一个元素
public class MyIterator {
    public static void main(String[] args) {
        ArrayList<Integer> test = new ArrayList<>();
        test.add(3);
        Iterator<Integer> iterator = test.iterator();//获取迭代器对象
        while(iterator.hasNext()){
            Integer element = iterator.next();
            System.out.println(element);
        }
    }
}

在这里插入图片描述

增强for循环

增强for循环用来遍历数组或者集合。
格式:

for(元素类型 变量名:要遍历的集合名或者数组名){
      变量名就是代表的每一个元素
  }

IDEA快捷键:集合名或者数组名.for

遍历集合

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        for (String i : list) {
            System.out.println(i);
        }
    }
}

在这里插入图片描述

遍历数组

public class Test {
    public static void main(String[] args) {
        int[] arr = {1,2,3};
        for (int i : arr) {
            System.out.println(i);
        }
    }
}

在这里插入图片描述
注意:增强for循环遍历集合时,底层实现原理为迭代器,不能随意修改集合长度,否则会出现并发修改异常。增强for循环遍历数组时,底层实现原理为普通for循环。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

收银系统源代码-收银端UI风格

智慧新零售收银系统是一套线下线上一体化收银系统&#xff0c;给商户提供含线下收银称重、线上商城、精细化会员管理、ERP进销存、丰富营销活动、移动店务助手等一体化的解决方案。 如Windows版收银&#xff08;exe安装包&#xff09;、安卓版收银&#xff08;apk安装包&#…

PID控制与模糊PID控制的比较

一、PID控制器的设计 1.PID控制原理图&#xff1a; PID控制其结构框图如下图所示&#xff1a; 图1&#xff1a;PID控制器结构框图 2.PID控制器传递函数的一般表达式 PID控制器传递函数的一般表达形式为&#xff1a; 其中kp为比例增益&#xff1b;ki为积分增益&#xff1b;k…

学习笔记——动态路由——IS-IS中间系统到中间系统(IS-IS工作过程)

六、IS-IS工作过程 1、第一步&#xff1a;建立邻居关系 IS-IS网络中所有路由器之间实现通信&#xff0c;主要通过以下几个步骤&#xff1a; (1)邻居关系建立&#xff1a; 邻居关系建立主要是通过HELLO包交互并协商各种参数&#xff0c;包括链路类型(level-1/level-2)&#…

详细分析Spring中的@Configuration注解基本知识(附Demo)

目录 前言1. 基本知识2. 详细分析3. Demo3.1 简单Bean配置3.2 属性配置3.3 多条件配置 4. 实战拓展 前言 Java的基本知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;Spring框架从入门到学精&#xff08;全&am…

k8s集群如kubeadm init和kube-flannel.yam问题

查看k8s中角色内容kubectl get all (显示pod和server以及delment) 删除应用资源选择删除先删除部署查看部署和pod没了服务还在&#xff0c;但资源和功能以及删除&#xff0c;删除服务kubectl delete 服务名&#xff08;部署名&#xff09;&#xff0c;get pods 获取默认空间的容…

毛细管计算软件

思科普毛细管计算软件 输入部分&#xff1a; 一是制冷剂的选取&#xff0c;含常用制冷剂R134A R600A R407C等 A输入热负荷 B蒸发温度 C冷凝温度 D回气温度 毛细管的选项&#xff0c;根据不同内径对应不同长度的毛细管

详细分析@FunctionalInterface的基本知识(附Demo)

目录 前言1. 基本知识2. Demo 前言 Java的基本知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;Spring框架从入门到学精&#xff08;全&#xff09; 1. 基本知识 FunctionalInterface 是 Java 8 引入的一个注…

apache:the requested operation has failed使用httpd -t

Apache24\bin cmd 回车 httpd -t 因为我重新压缩了&#xff0c;记住&#xff0c;重新压缩要使用原路径&#xff0c; 因为你安装的 时候使用的是原路径 还是不行就改个端口&#xff0c;切记修改配置文件httpd.conf先把Tomcat停了 Define SRVROOT "F:\Apache\Apache24&q…

从生物学到机械:人眼如何为机器人视觉系统提供无尽灵感?

人眼激发了相机机制的发展&#xff0c;该机制改善了机器人对周围世界的观察和反应方式。 该摄像头系统由马里兰大学&#xff08;UMD&#xff09;计算机科学家领导的团队开发&#xff0c;模仿人眼用于保持清晰稳定的视力的不自主运动。 该团队对相机的原型设计和测试称为…

警惕!焦虑过度的这些症状正在悄悄侵蚀你的生活!

在快节奏的现代社会中&#xff0c;焦虑已成为许多人生活的一部分。适度的焦虑可以激发我们的斗志&#xff0c;推动我们前进。然而&#xff0c;当焦虑过度时&#xff0c;它可能会变成一把双刃剑&#xff0c;对我们的身心健康造成严重威胁。本文将探讨焦虑过度的表现&#xff0c;…

机器视觉/自然语言/生成式人工智能综合应用实验平台-实训平台-教学平台

AIGC是人工智能1.0时代进入2.0时代的重要标志&#xff0c;MIT 科技评论也将Al合成数据列为2022年十大突破性技术之一&#xff0c;甚至将生成性Al(Generative Al) 称为是AI领域过去十年最具前景的进展。同时&#xff0c;AIGC领域岗位需求数量暴涨。高校方面在人工智能专业与机器…

文献笔记|综述|When Large Language Model Meets Optimization

When Large Language Model Meets Optimization 题目&#xff1a;当大型语言模型遇到优化时 作者&#xff1a;Sen Huang , Kaixiang Yang , Sheng Qi and Rui Wang 来源&#xff1a;arXiv 单位&#xff1a;华南理工大学 文章目录 When Large Language Model Meets Optimization…

【android 9】【input】【10.发送按键事件4——View的分发流程】

系列文章目录 可跳转到下面链接查看下表所有内容https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5501文章浏览阅读2次。系列文章大全https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5501 目录…

AGE 可比性、相等性、可排序性和等效性

AGE已经对原始类型&#xff08;布尔值、字符串、整数和浮点数&#xff09;和映射的相等性有了良好的语义。此外&#xff0c;Cypher对整数、浮点数和字符串的可比性和可排序性也有很好的语义。然而&#xff0c;处理不同类型的值与Postgres定义的逻辑和openCypher规范存在偏差&am…

websockt初始化,创建一个webSocket示例

写文思路&#xff1a; 以下主要从几个方面着手写websocket相关&#xff0c;包括以下&#xff1a;什么是webSocket&#xff0c;webSocket的优点和劣势&#xff0c;webSocket工作原理&#xff0c;webSocket握手示例&#xff0c;如何使用webSocket(使用webSocket的一个示例)&#…

【安全设备】堡垒机

一、什么是堡垒机 安全运维审计与风险控制系统即堡垒机&#xff0c;前身为跳板机&#xff0c;跳板机是一个简单的管理设备&#xff0c;但缺乏对运维操作的控制和审计能力。堡垒机是一种特定的网络安全设备&#xff0c;用于在一个网络环境中保护数据和网络不受外部和内部用户的…

k8s record 20240708

一、PaaS 云平台 web界面 资源利用查看 Rancher 5台 CPU 4核 Mem 4g 100g的机器 映射的目录是指docker重启后&#xff0c;数据还在 Rancher可以创建集群也可以托管已有集群 先docker 部署 Rancher&#xff0c;然后通过 Rancher 部署 k8s 想使用 kubectl 还要yum install 安…

深度分析:智算中心建设 - GPU选型

大模型加持AI技术赛道革新发展&#xff0c;“大模型热”愈演愈烈。2024年2月15日&#xff0c;OpenAI首个视频生成模型Sora发布&#xff0c;完美继承DALLE 3的画质和遵循指令能力&#xff0c;能生成长达1分钟全尺寸的高清视频。2024年5月14日&#xff0c;OpenAI发布GPT-4o&#…

comsol达西定律的小例子

comsol达西定律的小例子

clean code-代码整洁之道 阅读笔记(第十七章 终章)

大纲 第十七章 味道与启发 17.1 注释 C1&#xff1a;不恰当的信息 C2&#xff1a;废弃的注释 C3&#xff1a;冗余注释 C4&#xff1a;糟糕的注释 C5&#xff1a;注释掉的代码 17.2 环境 E1&#xff1a;需要多步才能实现的构建 E2&#xff1a;需要多步才能做到的测试 …