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

news2024/9/30 3:31:34

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循环。

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

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

相关文章

python parser.add_argument

7->prefix_chars&#xff1a;前缀可选参数的字符集(默认值:’ - ) import argparseparser argparse.ArgumentParser(descriptionTesting...) #创建对象parser.add_argument(test,typeint) ##添加单个命令参数 parser.add_argument(test_1,typefloat) ##type是输入的指定类型…

LeetCode刷题之HOT100之最长递增子序列

2024/7/10 晴&#xff0c;睡眠质量良好&#xff0c;到实验室时间9.18。知了在窗外聒噪&#xff0c;似乎让我安心&#xff0c;静下来。做题吧 1、题目描述 2、算法分析 给一个整数数组&#xff0c;要求出里面最长严格递增子序列的长度。遇到这种问题&#xff0c;想到的就是DP算…

vmware 虚拟机扩容 centos 硬盘扩容 kylinos v10扩容

1. 虚拟机先扩容 1.1 关机&#xff0c;并点击系统&#xff0c;让他是点选状态&#xff0c;但是没开机 1.2 右击&#xff0c;点击最下方设置&#xff0c;点击硬盘 1.3 点击扩展磁盘 1.4 选择你需要扩容的大小&#xff0c;数字为总大小 完成提示&#xff1a; 磁盘已成功扩展。您…

溶解氧(DO)理论指南(2)

转载自梅特勒官网资料&#xff0c;仅用于学习交流&#xff0c;侵权则删&#xff01; 溶解氧理论指南 2 DO电极类型2.1 氧化还原化学简介2.2 原电池法溶解氧电极2.3 极谱法溶解氧电极2.3 光学法溶解氧电极 2 DO电极类型 O2是一种高活性分子&#xff0c;因为它是通过光合作用连…

linux信息收集与提权

目录 版本信息收集 kali得一些exp网站 kali自带的searchsploit工具 脏牛提权漏洞&#xff08;改写没有写权限的文件&#xff09; 测试靶场下载链接 sudo提权 上传恶意C脚本进行编译生成dirty的elf文件&#xff0c;也可以在攻击机编译好上传 启动&#xff0c;123456是设…

蹭一个围棋亚军!不要和低维的人说话——早读(逆天打工人爬取热门微信文章解读)

熬夜后需要补什么呢&#xff1f; 引言Python 代码第一篇 洞见 不要和低维的人说话&#xff08;深度好文&#xff09;第二篇 冲冲冲结尾 引言 昨晚真的是熬夜又想不出东西 真的头大 最近下围棋 这个棋感很好呀 我是K级选手 目前是8级 套几个buff 纯自学 为什么决定学围棋呢? 是…

vue和react你怎么选择?

在选择Vue和React之间&#xff0c;其实没有一个绝对的“最佳选择”&#xff0c;因为这取决于你的项目需求、团队熟悉度、开发环境、以及你对这两个框架的个人偏好。下面是一些可以帮助你做出决策的因素&#xff1a; 1. 学习曲线 Vue&#xff1a;Vue的学习曲线相对平缓&#xf…

文件上传漏洞:upload-labs靶场安装和实践

一、upload-labs靶场安装 安装&#xff1a;Windows下的Upload-labs环境搭建(Upload文件夹不存在报错&#xff09;_upload-labs文件夹不存在-CSDN博客 当安装好phpstudy之后&#xff0c;在网址栏输入&#xff1a;localhost或127.0.0.1&#xff0c;如果没问题&#xff0c;就将下…

RFID智能锁控系统在物流安全运输中的应用与效益分析

一、物流锁控系统现状与挑战 1.1 传统锁控系统的局限性 安全性不足&#xff1a;机械锁容易被撬开或钥匙被复制&#xff0c;导致货物在运输过程中面临被盗风险。 无法实时追踪&#xff1a;一旦货物离开发货点&#xff0c;物流公司无法实时监控货物状态&#xff0c;增加了货物…

Elasticsearch:Node.js ECS 日志记录 - Morgan

这是之前系列文章&#xff1a; Elasticsearch&#xff1a;Node.js ECS 日志记录 - Pino Elasticsearch&#xff1a;Node.js ECS 日志记录 - Winston 中的第三篇文章。在今天的文章中&#xff0c;我将描述如何使用 Morgan 包针对 Node.js 应用进行日子记录。此 Morgan Node.j…

无法找到模块“@wangeditor/editor-for-vue”的声明文件

vue3项目中使用wangeditor/editor遇到的问题 开发环境不管红线报错正常使用 打包的时候就会报错了 1.安装依赖 pnpm install --save wangeditor/editor wangeditor/editor-for-vuenext 2.遇到的问题 3.解决方法 在src目录下面创建 wangeditor-types.d.ts 文件 代码如下 de…

【单片机毕业设计选题24054】-基于STM32的水质检测系统

系统功能: 主要功能模块原理图: 电源时钟烧录接口: 单片机和按键输入电路: 传感器采集电路&#xff1a; 资料获取地址 系统主要功能模块代码 初始化代码: /* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration-----------------------------------------------…

最大数值00

题目链接 最大数值 题目描述 注意点 不得使用if-else或其他比较运算符 解答思路 本题直接比较大小非常简单&#xff0c;但是题目要求不得使用if-else或其他比较运算符&#xff0c;可以先将a与b相减&#xff0c;再右移获得其符号位&#xff0c;根据符号位是0还是-1返回相应…

【以史为镜、以史明志,知史爱党、知史爱国】中华上下五千年之-唐朝

唐朝&#xff08;618年—907年&#xff09;&#xff0c;是继隋朝之后的大一统中原王朝&#xff0c;共历二十一帝&#xff0c;享国二百八十九年。 隋末天下群雄并起&#xff0c;617年 唐国公李渊于晋阳起兵&#xff0c;次年称帝建立唐朝&#xff0c;定都长安。 唐太宗继位后开创…

【吊打面试官系列-MyBatis面试题】简述 Mybatis 的插件运行原理,以及如何编写一个插件?

大家好&#xff0c;我是锋哥。今天分享关于 【简述 Mybatis 的插件运行原理&#xff0c;以及如何编写一个插件?】面试题&#xff0c;希望对大家有帮助&#xff1b; 简述 Mybatis 的插件运行原理&#xff0c;以及如何编写一个插件? Mybatis 仅可以编写针对 ParameterHandler、…

About CAT7验证——CLASS F或者Fa测试FLUKE解决方案

七类CLASS F线缆认证测试标准在TIA的标准数据库中是直接跳过&#xff0c;取而代之的是八类的通道测试标准&#xff0c;真正认证七类测试的是在ISO标准数据库中&#xff0c;找到ISO11801 CHANNEL CLASS F或者FA&#xff0c;这就是标准的七类测试标准&#xff0c;测试频率需要达到…

【以史为镜、以史明志,知史爱党、知史爱国】中华上下五千年之-隋朝

隋朝&#xff08;581年-619年&#xff09;是中国历史上承南北朝、下启唐朝的大一统王朝。 581年&#xff0c;杨坚定国号为“隋”&#xff0c;定都大兴城&#xff0c;随后南下灭陈朝&#xff0c;统一中国&#xff0c;结束了自西晋末年以来长达近300年的分裂局面。 杨坚&#xff…

在树莓派设备上导出系统镜像

镜像导出 前提条件&#xff1a; 已获取可以正常使用的设备。已获取鼠标、键盘和电源适配器。已将设备接入可正常使用的网络。 操作步骤&#xff1a; 连接适配器给设备上电&#xff0c;正常启动设备&#xff0c;连接鼠标和键盘。在终端命令窗格执行如下命令&#xff0c;安装…

您的《嵌入式系统设计中级工程师》证书待领取,点击查看!

在技术日新月异的今天&#xff0c;每一份专业认证都是个人专业能力的有力证明。近期&#xff0c;中国电子学会新一轮《嵌入式系统设计中级工程师-嵌入式裸机编程》专业技术证书的相关认证考试已圆满结束&#xff0c;最新一批证书已全部发放&#xff01; ▋ 证书介绍 嵌入式技术…

ES6:JavaScript开发者的速成手册(二)

目录 前言Reflect APIProxyProxy 与 defineProperty 的区别 SymbolsGeneratorsgenerator处理异步代码 PromiseAsyncModuleAPI介绍 前言 本教程将分为两大部分深入解读ES6的精髓。将带你领略ES6的基础语法&#xff0c;将深入探讨ES6的高级特性&#xff0c;通过浅显易懂的语言和大…