学习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字的面试问…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
