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;
}
}
Unity2D像素刀光实现:粒子方向控制与像素级渲染规范 像素风游戏中的刀光特效并非普通粒子动画,而是需严格遵循像素艺术原理的视觉暂留模拟。其核心在于将‘瞬时切割感’转化为程序可执行的渲染逻辑:通过禁用纹理滤波保障1:1像素锐度,绑定刀锋向量控制粒子运动方向,限定≤0.15秒生命周期匹配人眼暂留阈值,并采用Stretched Billboard实现动态拉伸拖影。该方案兼顾美术语义(如直劈、横扫、突刺)与工程约束(Sorting Layer分层、对象池复用、单粒子GPU优化),广泛适用于Unity2D平台的动作反馈系统,尤其适配《空洞骑士》《死亡细胞》类高节奏像素R 阅读详情

相关推荐

LIN总线CAPL函数实战——动态控制报文发送(linDeactivateSlot与linActivateSlot)

本文深入解析了LIN总线测试中动态控制报文发送的核心CAPL函数linDeactivateSlot与linActivateSlot的实战应用。通过详细拆解函数参数、生效范围及限制,并结合故障注入、功耗测试等实际场景的代码示例,指导测试工程师在仿真LIN主节点时,灵活调度报文发送,实现高效自动化测试。

weixin_29255731的博客 349

获取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

RK3588 Linux启动优化至亚秒级全链路剖析

本文深入探讨RK3588平台Linux系统启动加速技术,涵盖从BL1/ATF安全固件、U-Boot剪裁到内核精简化等全链路优化方案,实现从上电到用户脚本800ms内完成的实战经验。​​文末提供完整解决方案获取方式​​。由于在 ARMv6 之后引入了 TrustZone 模块, 目前市面上 ARMv7 和 ARMv8 之后的系统都会包含了该模块, 这个模块由 BL1 启动, 且在 ATF(ARM Trust Firmware) 固件中, 既安全世界中引导到 BL33 (UBOOT)的系统。

韩若明溪 1777

Java for循环

for循环 for(int i=0;i

xiaobiao19的博客 735

单细胞实战之亚细胞分群从T/NK至CD4+T细胞——从入门到进阶(中级篇1)

亚细胞分群从T/NK至CD4+T细胞

zfyyzhys的博客 6392

Ubuntu 22.04下Colmap带CUDA支持的编译安装全攻略(附显卡架构查询指南)

本文详细指导在Ubuntu 22.04系统上从源码编译安装支持CUDA加速的Colmap,解决了官方版本无GPU支持导致处理速度慢的问题。重点包括环境依赖准备、CUDA工具链配置、显卡计算能力查询以及完整的编译安装步骤,旨在帮助研究者和开发者高效部署高性能三维重建工具。

gold8的专栏 345

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

Intel RealSense D435 深度相机详解

Intel RealSense D435 深度相机是 Intel 推出的一款基于深度感知技术的相机,广泛应用于机器人、无人机、增强现实(AR)、虚拟现实(VR)、3D扫描、智能监控等领域。D435 是 RealSense 系列中较为高端的深度相机之一,结合了深度传感和 RGB 摄像技术,为用户提供高精度的深度数据和高质量的图像捕捉能力。

crasher123的博客 2947

java增强for循环中获取index

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

weixin_34178244的博客 7015

手把手教你用Excel自动化处理G14大额风险暴露报表(含211版模板)

本文针对G14大额风险暴露报表(含211版)手工填报效率低、易出错的核心痛点,提供了一套基于Excel VBA的完整自动化解决方案。文章详细讲解了如何构建从数据采集、清洗、关联客户识别、风险暴露计算到自动化校验与归档的完整工作流,并附有可操作的代码示例,旨在帮助银行风控人员大幅提升报表处理效率与准确性。

weixin_29304985的博客 450

贝塞尔曲线在机器人路径平滑中的实战应用与优化

本文深入探讨了贝塞尔曲线算法在机器人路径平滑中的核心应用。通过对比G1CBS与G2CBS两种方法,详细阐述了如何实现从切线连续到曲率连续的平滑优化,以满足不同机器人对运动平稳性和效率的需求,并提供了完整的Python代码实现与关键参数调优指南。

weixin_29051811的博客 307

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

Cadence SPB16. 6 安装流程

1.首先下载CadenceAllegroSPBorCAD16.6安装包 下载之后运行其中的setup.exe,然后先安装第一项LicenseManager 一直按next或install, 直到被询问license时,单击cancel,然后选是和finish。 2,安装Product Installtion 直接点next跳过这一步 安装完成后,点Exit退出 3.按ctrl+alt+delete打开任务管...

wangjie36的博客 5151

for循环

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

weixin_34072857的博客 77

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

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

weixin_28795975的博客 524

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

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

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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、付费专栏及课程。

余额充值