Java增强for循环中获取index

[b]前提测试数据:[/b]

String[] data = new String[]{"rensanning001", "rensanning002", "rensanning003"};
List<String> dataList = Arrays.asList(data);


[b]普通的For循环:[/b]

for (int i = 0; i < dataList.size(); i++) {
System.out.println(i + ":" + dataList.get(i));
}


[b]增强For循环(获取index需要定义额外的变量):[/b]

int i = 0;
for (String elem : dataList) {
System.out.println(i + ":" + elem);
i++;
}


[b]自定义静态方法实现带index的循环:[/b]

for (Indexer<String> elem : ExtFor1.loop(dataList)) {
System.out.println(elem.index() + ":" + elem.value());
}


public class ExtFor1 {

public static <T> Iterable<Indexer<T>> loop(final Iterable<T> list) {
return new Iterable<Indexer<T>>() {
@Override
public Iterator<Indexer<T>> iterator() {
return new Iterator<Indexer<T>>() {
private int counter = 0;
private Iterator<T> iterator = list.iterator();

@Override
public boolean hasNext() {
return iterator.hasNext();
}

@Override
public Indexer<T> next() {
Indexer<T> elem = new Indexer<T>(counter++, iterator.next());
return elem;
}

@Override
public void remove() {
throw new RuntimeException();
}
};
}
};
}

}


[b]扩展Iterable实现带index的循环:[/b]

for (Indexer<String> elem : ExtFor2.loop(dataList)) {
System.out.println(elem.index() + ":" + elem.value());
}


public class ExtFor2<T> implements Iterable<Indexer<T>> {
private Iterator<T> iterator;

private ExtFor2(Iterable<T> iter) {
this.iterator = iter.iterator();
}

public static <T> ExtFor2<T> loop(Iterable<T> iter) {
return new ExtFor2<T>(iter);
}

@Override
public Iterator<Indexer<T>> iterator() {
return new Iterator<Indexer<T>>() {
private int counter = 0;

@Override
public boolean hasNext() {
return iterator.hasNext();
}

@Override
public Indexer<T> next() {
Indexer<T> elem = new Indexer<T>(counter++, iterator.next());
return elem;
}

@Override
public void remove() {
throw new RuntimeException();
}
};
}

}


[b]jquery风格的for循环:[/b]

For.each(dataList, new For.Function<String>() {
public void execute(int index, String elem) {
System.out.println(index + ":" + elem);
}
});


public class For {

public static <T> void each(List<T> list, Function<T> function) {
int length = list.size();
for (int index = 0; index < length; index++) {
function.execute(index, list.get(index));
}
}

public static interface Function<T> {
public void execute(int index, T obj);
}
}



public class Indexer<T> {
private final int index;
private final T value;

public Indexer(int index, T value) {
this.index = index;
this.value = value;
}

public int index() {
return this.index;
}

public T value() {
return this.value;
}
}
深入理解梅尔刻度、梅尔滤波器组和梅尔时频谱图 读取一段音频,使用短时傅里叶变换,得到普通的时频谱图,然后绘制梅尔滤波器组,值得注意的是,librosa的梅尔滤波器组函数还带有权重归一化功能,即对一个三角形滤波器的每个权重,都除以该三角形的面积,如果不希望进行该归一化,设置参数。从公式可见,对数部分可以以自然对数为底数,也可以以10为底数,不同的底数对应不同的系数,要确定当前的系数,只需要代入(1000Hz, 1000mel)即可。其中,m是当前滤波器的序号,表征了当前的时间段,k是当前频率的序号,表征了当前正在对哪一频率的。 阅读详情

相关推荐

避开这5个坑!Tushare数据获取与清洗的常见问题解决方案

本文详细解析了使用Tushare进行金融数据分析时常见的5大问题,包括Token失效、数据缺失、频率限制等,并提供了Python实战解决方案。通过智能填充策略、队列化管理和分层存储设计,帮助开发者高效获取和清洗金融数据,提升量化分析效率。特别适合金融数据分析师和Python开发者参考。

f9g0h的博客 423

获取for循环中的索引值

首先我们看看for循环: for(var i=0; i< 6; i++){ console.log(i); } 相信每个人都知道这个打印的结果吧! 这个结果是: 0 1 2 3 4 5 6 我们把for循环具体到某一个事例 我们平时点击tab切换时,如何获取索引值呢? 比如这个例子,代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>闭包

IT_bar的博客 4127

4路QSFP28接口能玩出什么花样?基于璞致VU13P开发板的100G网络测试方案

本文详细介绍了基于璞致PZ-VU13P-KFB开发板构建100G网络测试方案的实战指南。该方案充分利用板载Xilinx Virtex UltraScale+ FPGA的强大算力与4路QSFP28接口,涵盖从光模块选型、Aurora协议配置、开源Corundum方案部署,到误码率测试及散热优化的全链路流程,为高速网络设备研发与验证提供了可靠的硬件平台。

cola5的博客 454

Java for循环

for循环 for(int i=0;i

xiaobiao19的博客 735

别再只用线性回归了!用sklearn的核岭回归搞定非线性数据(附RBF核调参实战)

本文详细介绍了如何使用sklearn的核岭回归处理非线性数据,特别是RBF核的应用与调参实战。通过网格搜索找到最佳参数组合,核岭回归能有效捕捉数据中的复杂波动,显著提升模型性能。适合需要解决非线性问题的数据科学家和机器学习工程师。

weixin_34246529的博客 338

AutoCAD提示找不到acdb24.dll、AcGe24.dll、AcPal.dll、AcUt.dll怎么办?

在我们安装了AutoCAD 2023版本以后,打开CAD,可能会出现dll文件丢失的情况,如下所示:1、由于找不到acdb24.dll,无法继续执行代码。重新安装程序可能解决此问题。2、由于找不到AcGe24.dll,无法继续执行代码。重新安装程序可能解决此问题。3、由于找不到AcPal.dll,无法继续执行代码。重新安装程序可能解决此问题。4、由于找不到AcUt.dll,无法继续执行代码。重新安装程序可能解决此问题。遇到AutoCAD启动系统错误,由于找不到dll文件该怎么处理呢?

huoxu369的博客 1万+

java for index_Java增强for循环中获取index

前提测试数据:String[] data = new String[]{"rensanning001", "rensanning002", "rensanning003"};List dataList = Arrays.asList(data);普通的For循环:for (int i = 0; i < dataList.size(); i++) {System.out.println(i +...

weixin_39866963的博客 725

F5高可用HA配置详情

F5 HA详细配置

weixin_45843944的博客 3026

java增强for循环中获取index

java增强for循环中获取index http://rensanning.iteye.com/blog/2003205 转载于:https://www.cnblogs.com/czlovezmt/p/9146868.html

weixin_34178244的博客 7015

Spring AI 项目实战(五):Spring Boot + AI + DeepSeek + Redis 实现聊天应用上下文记忆功能(附完整源码)

本文介绍了如何基于Spring Boot 3.2、Spring AI 1.0.0-M4、DeepSeek API和Redis构建具备上下文记忆功能的智能聊天应用。项目采用现代化技术栈,包括Java 17、Maven、Lombok等,实现了智能对话、会话管理、异常处理等核心功能。文章详细讲解了环境搭建、配置管理(含Redis和AI服务集成)、核心组件设计(如消息实体、控制器和服务层实现),以及完整的项目结构。该项目提供了美观的Web界面和REST API,支持对话上下文存储(通过Redis实现)和系统监控,可

博客 829

Python爬虫实战:基于Scrapy与Playwright高效爬取人民网新闻数据

本文将详细介绍如何使用Python最新技术栈(Scrapy框架结合Playwright浏览器自动化工具)高效爬取人民网新闻数据。文章包含完整项目搭建、反反爬策略、数据解析存储以及性能优化等核心内容,提供可直接运行的代码示例,适合中高级Python开发者学习现代网络爬虫开发技术。python# 去除特殊空白字符。

2201_76125261的博客 1120

java for index_java增强for循环中获取index

Linux 内核常见宏定义我们在阅读Linux内核是,常见到这些宏 __init, __initdata, __initfunc(), asmlinkage, ENTRY(), FASTCALL()等等.它们定义在 /incl ...&lbrack;转&rsqb;【HTTP】Fiddler(二) - 使用Fiddler做抓包分析本文转自:http://blog.youkuaiyun.com/o...

weixin_28956461的博客 623

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

for循环

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34072857的博客 77

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java迭代遍历_Java8集合框架——集合的遍历(迭代)

本文主要梳理 Java 集合框架常见的遍历/迭代方式,如下:1、List 的遍历方式List 的遍历主要有以下几种方式:其中 2、3、5 本质上可以说是一样的使用 Iterator 迭代器。而 ListIterator 则是 Iterator 的一个变种(双向迭代, 可以进行 add、remove、set、定位当前索引),使用如下:public static voidmain(String[] a...

weixin_28795975的博客 524

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

for循环数组遍历,引出增强for循环(forEach)

这是一个传统的遍历数组元素的for循环结构,本例中的计数器为数组元素的索引,一般初始化为0,进入循环体的表达式一般写为:索引小于被遍历数组的长度。 每次循环执行结束后会对索引进行加1操作。 1.这是最简单的遍历: public class Demo01 { public static void main(String[] args){ int[] numArray=new int[5]; for (int index = 0; index < numArray.

qq_45222558的博客 1309

java for的增强_Java基础之增强for循环

平时大家for循环应该用的不少,特别是增强for循环,简单快捷。但是在增强for中做删除操作,却会抛出java.util.ConcurrentModificationException,一起来看下。上面的代码,在for循环执行完if中的remove,遍历下一个元素时便会抛出java.util.ConcurrentModificationException。到底在for (String s : li...

weixin_39964899的博客 245

JAVA 增强的for循环遍历数组

运行报错:5 7 13 19 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 11 out of bounds for length 8-------------一种运行时异常,常出现在数组下标越界中,称为下标出界异常。for(声明语句 : 表达式--要访问的数组名){//代码句子}为了少些代码,使用增强的for循环替换以上代码的普通for循环,即。

weixin_46198882的博客 1231

Java增强型for循环原理与应用详解

迭代器模式是Java集合框架的核心设计模式,它通过统一的Iterator接口实现了集合元素的遍历操作。作为语法糖的增强型for循环(for-each)在编译期会自动转换为迭代器实现,大幅简化了集合遍历的代码编写。这种语法结构不仅提升了代码可读性,还确保了类型安全,广泛应用于List、Set等集合的遍历操作。在并发编程场景下,需特别注意ConcurrentModificationException等线程安全问题。理解其底层实现机制有助于开发者正确处理集合遍历时的修改操作,并能在数组遍历、自定义Iterable

benben 340

java foreach index索引获取

public class ForeachIndex { public static void main( String[] args ) { List<String> stringList = new ArrayList<>(); ...

chongyuanlong3463的博客 1万+

java for循环 fanxing_Java 增强for循环 泛型

增强for循环专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。格式:for(元素的数据类型 变量 : Collection集合or数组){}例子public static void main(String[] args) {//普通forCollectioncol = new ArrayList();col.add(new ...

weixin_42377407的博客 156

Java8的forEach(...)如何提供index值

目录Java2遍历集合Java5遍历集合Java8遍历集合需同时提供index,咋办?期望的遍历模式通过BiConsumer包装Consumer实现这样的业务代码,是我期望的!思考过程我们不仅要会使用工具,更要会制造工具… Java2遍历集合 遍历Collection的代码,可以是采用Iterator接口,通过next()遍历。如: List<String> list = Ar...

weixin_37297850的博客 4万+

for 用法 java_java新特性之for循环最全的用法总结

1. 增强for概述增强for循环,也叫Foreach循环,用于数组和容器(集合类)的遍历。使用foreach循环遍历数组和集合元素时,无需获得数组和集合长度,无需根据索引来访问数组元素和集合元素,大大提高的效率,代码也简洁不少。2. Oracle官网的解释So when should you use the for-each loop? Any time you can. It really b...

weixin_39999116的博客 914

Java增强的for循环和普通for循环对比

JDK1.5中增加了增强的for循环。 缺点: 对于数组,不能方便的访问下标值; 对于集合,与使用Interator相比,不能方便的删除集合中的内容(在内部也是调用Interator). 除了简单遍历并读取其中的内容外,不建议使用增强的for循环。 一、遍历数组 语法为: for (Type value : array) { expressio...

kqixiang945的专栏 107
上一篇: VisualUI for Titanium Studio
下一篇: Android生成和扫描二维码之ZXing
wayne_ren
博客等级 码龄21年 60粉丝 300原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值