学习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字的面试问…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL
ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...
Monorepo架构: Nx Cloud 扩展能力与缓存加速
借助 Nx Cloud 实现项目协同与加速构建 1 ) 缓存工作原理分析 在了解了本地缓存和远程缓存之后,我们来探究缓存是如何工作的。以计算文件的哈希串为例,若后续运行任务时文件哈希串未变,系统会直接使用对应的输出和制品文件。 2 …...
