学习JAVA的第十四天(基础)
目录
Collection集合
迭代器遍历
增强for遍历
Lambda表达式遍历
List集合
遍历
数据结构
栈
队列
数组
链表
前言: 学习JAVA的第十三天
Collection集合
Collection的遍历方式:
迭代器(不依赖索引)遍历
增强for遍历
Lambda表达式遍历
迭代器遍历
Collection集合获取迭代器
| Iterator<E> iterator() | 返回迭代器对象,默认指向集合的0索引 |
Iterator中常见的方法
| 方法名称 | 说明 |
|---|---|
| boolean hasNext() | 判断当前位置是否有元素,有元素返回true,无元素返回false |
| E next() | 获取当前位置的元素,并将迭代器对象移向下一个位置 |
注意事项:
循环中只能使用一次next()
迭代器遍历完成,指针不会复位
迭代器遍历时,不能使用集合的方法删除和添加
测试类
public static void main(String[] args) {//创建集合添加对象Collection<String> coll = new ArrayList<>();coll.add("aa");coll.add("bb");coll.add("cc");//获取迭代器对象Iterator<String> it = coll.iterator();//循环获取集合中每个元素while(it.hasNext()){String str = it.next();System.out.print(str+" ");//aa bb cc }}
增强for遍历
增强for遍历的底层就是迭代器,不过是为了简化迭代器书写的
单列集合和数组才能使用增强for遍历
测试类
public static void main(String[] args) {//创建集合Collection<String> coll = new ArrayList<>();coll.add("aaa");coll.add("bbb");coll.add("ccc");//增强for遍历for(String s : coll) {System.out.print(s); //aaabbbccc}}
Lambda表达式遍历
提供一个更简单、更直接的遍历集合的方式
方法使用 :
测试类:
public static void main(String[] args) {//创建集合Collection<String> coll = new ArrayList<>();coll.add("aaa");coll.add("bbb");coll.add("ccc");//Lambda表达式coll.forEach(s -> System.out.print(s)); //aaabbbccc}
List集合
特点:
有序 :存和取的顺序一样
有索引 : 可以通过索引操作元素
可重复 : 存储的元素可以重复
方法:
List集合继承于Collection集合,但List有自己特有的方法
| 方法 | 说明 |
|---|---|
| add(int index ,E element) | 在集合的指定位置插入指定的元素 |
| E remove(int index) | 删除指定索引的元素,返回删除的元素 |
| E set(int index,E element ) | 修改指定索引的元素,返回修改的元素 |
| E get(int index) | 返回指定索引的元素 |
测试类
public static void main(String[] args) {//创建集合对象List<String> list = new ArrayList<>();//添加元素list.add("aaa");list.add("bbb");list.add("ccc");System.out.print(list+" ");// [aaa, bbb, ccc]//在指定的索引添加元素list.add(1,"nnn");System.out.print(list+" ");//[aaa, nnn, bbb, ccc]//删除指定索引的元素System.out.println(list.remove(1));//nnnSystem.out.print(list+" ");//[aaa, bbb, ccc]//修改指定索引的元素System.out.println(list.set(2, "ddd"));//cccSystem.out.print(list+" ");//[aaa, bbb, ddd]//通过获取集合的元素System.out.println(list.get(2));//ddd}
遍历
迭代器遍历
列表迭代器遍历
Lambda表达式遍历
for循环遍历
增强for循环遍历
测试类:
public static void main(String[] args) {//创建对象List<String> list = new ArrayList<>();list.add("aaa");list.add("bbb");list.add("ccc");//迭代器 可以用迭代器本身的方法增加元素 it.add()Iterator<String> it = list.iterator();while (it.hasNext()){System.out.print(it.next());//aaabbbccc}//列表迭代器 遍历时可以添加元素ListIterator<String> listIt = list.listIterator();while(listIt.hasNext()){System.out.println(listIt.next());//aaabbbccc}//增强forfor (String s : list) {System.out.print(s);//aaabbbccc}//for循环for (int i = 0; i < list.size(); i++) {System.out.print(list.get(i));//aaabbbccc}//Lambda表达式遍历list.forEach(s -> System.out.print(s));//aaabbbccc}
数据结构
计算机存储、组织数据的方式。
常见数据结构
- 栈
- 队列
- 数组
- 链表
- 二叉树
- 二叉查找树
- 平衡查找树
- 红黑树
栈
特点:后进先出,先进后出
过程 :
数据进入栈模型的过程:进栈(压栈)
数据离开栈模型的过程:出栈(弹栈)
队列
特点:先进先出、后进后出
过程:
数据从后端进入队列模型的过程:入队列
数据从前端离开队列模型的过程:出队列
数组
特点:元素在内存中是连续的
查询速度快
删除和添加效率相对慢
链表
特点:列表中每个元素叫做结点 (独立的对象)
查询速度慢
删除和添加效率相对快
过程:

相关文章:
学习JAVA的第十四天(基础)
目录 Collection集合 迭代器遍历 增强for遍历 Lambda表达式遍历 List集合 遍历 数据结构 栈 队列 数组 链表 前言: 学习JAVA的第十三天 Collection集合 Collection的遍历方式: 迭代器(不依赖索引)遍…...
安捷伦N5182A信号源 AgilentN5182A
描述: 1)信号特性: 250 kHz to 3 or 6 GHz频率范围 (可选低至 100 kHz) 13 dBm 1GHz输出功率 5dBm输出功率时W-CDMA动态范围:单载波 ≤-73 dBc ;4载波≤-66 dBc ≤1.2 ms切换速度在SCPI模式 2)调制与扫描&#x…...
就业班 2401--3.7 Linux Day13--日志轮转+jumpserver堡垒机
一、日志轮转 日志重要性 Linux系统日志对管理员来说,是了解系统运行的主要途径,因此需要对 Linux 日志系统有个详细的了解。 Linux 系统内核和许多程序会产生各种错误信息、告警信息和其他的提示信息,这些各种信息都应该记录到日志文件中&a…...
信息安全概论 习题
用密钥information构造一个Playfair矩阵 Playfair密码是一种替换加密技术,它不像传统的单字母替换密码那样工作,而是将信息分成一对字母(双字母)进行加密。构造Playfair矩阵时,首先需要一个密钥词,然后根据…...
仓储管理系统(WMS) 的研发历程-PRD撰写
题外话:PRD的展现形式有多种,有的人喜欢在axure上直接做产品描述,觉得word较为过时,有的人认为axure不专业,任何展现形式都无可厚非,重要的达到PRD的目的,PRD的目标是让团队知道需求实现细节&am…...
springboot实现多线程开发(使用@Async注解,简单易上手)
根据springboot的核心思想便捷开发,使用多线程也变得简单起来,通过一下几个步骤即可实现。 核心注解 EnableAsync将此注解加在启动类上,使项目支持多线程。 Async 使用我们的Async注解在所需要进行多线程的类上即可实现。 配置线程池 …...
并发支持库(1)-线程
线程允许多个程序任务在统一时间执行,不同的线程可以共享内存空间,每个线程也有自己的栈空间。 线程类 thread 类thread表示单个执行线程。线程在thread构造对象时开始执行。每个thread对象表示唯一的一个线程,thread不支持复制构造和复制…...
2024年最新阿里云服务器地域选择方法,以及可用区说明
阿里云服务器地域和可用区怎么选择?地域是指云服务器所在物理数据中心的位置,地域选择就近选择,访客距离地域所在城市越近网络延迟越低,速度就越快;可用区是指同一个地域下,网络和电力相互独立的区域&#…...
Frida实战:Java、Native、SO层面的Hook与主动调用详解
引言 Frida是一款强大的动态代码插桩工具,支持对Android和iOS应用进行实时调试和注入。本文将通过实例详细解析如何在Frida中实现对Java层、Native层(JNI)以及.so库内函数的Hook与主动调用。 一、Hook Java层函数 首先,我们展示…...
Codeforces Round 883 (Div. 3)(集训队加训1)
A.如果钉子与地面距离大于绳子的长度就必须剪 #include<bits/stdc.h> #define eps 1e-5 #define INF 1e9 using namespace std; typedef long long ll; const int N 2e6 9; int a[N],b[N],cl[N]; void Lan(){int n;cin>>n;for(int i1;i<n;i){cin>>a[i]…...
自封装 bind 方法(二)
因为 bind 的使用方法是 某函数.bind(某对象,...剩余参数) 所以需要在 Function.prototype 上进行编程将传递的参数中的某对象和剩余参数使用 apply 的方式在一个回调函数中执行即可要在第一层获取到被绑定函数的 this,因为要拿到那个函数用 apply /***…...
vcomp140.dll丢失如何修复,5种修复方法轻松搞定vcomp140.dll问题
vcomp140.dll文件的丢失可能会引发一系列系统运行与软件功能上的问题。具体来说,这个动态链接库文件是Visual C Redistributable的一部分,对于许多基于此环境开发的应用程序至关重要。一旦缺失,可能会导致部分应用程序无法正常启动或运行&…...
计算机视觉(Computer Vision)和机器视觉(Machine Vision)
举例说明计算机视觉(CV)技术的优势和挑战 计算机视觉(CV)技术是一种使用计算机科学和机器学习方法来解释、分析和理解图像和视频的技术。它的优势和挑战如下: 优势: 高效性:CV技术可以快速处…...
国内用ChatGPT可以吗
PS: 无限次数,无需魔法,登录即可使用,网页打开下面 tj4.mnsfdx.net 点击跳转链接 国内用ChatGPT可以吗?简单来说,是可以的,国内可以使用ChatGPT。ChatGPT是一款实体机器翻译工具,也是一种人工智能技术&…...
数据分析-Pandas两种分组箱线图比较
数据分析-Pandas两种分组箱线图比较 数据分析和处理中,难免会遇到各种数据,那么数据呈现怎样的规律呢?不管金融数据,风控数据,营销数据等等,莫不如此。如何通过图示展示数据的规律? 数据表&am…...
Mac版2024 CleanMyMac X 4.14.6 核心功能详解以及永久下载和激活入口
CleanMyMac 是 macOS 上久负盛名的系统清理工具,2018 年,里程碑式版本 CleanMyMac X 正式发布。不仅仅是命名上的变化,焕然一新的 UI、流畅的动画也让它显得更加精致。新增的系统优化、软件更新等功能,使得在日常使用 macOS 时有了…...
Java引用传递及基本应用
在 Java 中,传递参数的方式主要有两种:值传递(传递的是对象的引用值)和引用传递。本教程将重点介绍 Java 中的引用传递以及其基本应用。 1. 引用传递概念 在 Java 中,所有的方法参数都是通过值传递的。对于对象类型的…...
低代码测试自动化
每个企业都希望将产品快速推向市场。虽然低代码无代码测试自动化可以帮助组织实现这一目标,但测试人员必须牢记几件事,才能通过低代码无代码来推进他们的组织。 低代码测试自动化的重要性是什么? 低代码测试自动化加速了测试生命周期。借助简…...
Linux 文件操作命令
1 文件与目录操作 cd /home 进入 ‘/home’ 目录 cd .. 返回上一级目录cd ../.. 返回上两级目录cd - 返回上次所在目录cp file1 file2 将file1复制为file2cp -a dir1 dir2 复制一个目录 cp -a /tmp/dir1 . 复制一个…...
机器学习-面经(part8、贝叶斯和其他知识点)
机器学习面经其他系列 机器学习面经系列的其他部分如下所示: 机器学习-面经(part1)-初步说明 机器学习-面经(part2)-交叉验证、超参数优化、评价指标等内容 机器学习-面经(part3)-正则化、特征工程面试问题与解答合集机器学习-面经(part4)-决策树共5000字的面试问…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
