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;
}
}
阿里天池新闻推荐实战:多路召回策略解析与优化 本文深入解析阿里天池新闻推荐项目中的多路召回策略,包括ItemCF、UserCF、YouTubeDNN等五种召回模型的协同应用与优化技巧。通过实战案例展示如何提升推荐系统效果,特别针对冷启动问题提出创新解决方案,帮助开发者构建高效的新闻推荐系统。 阅读详情

相关推荐

Abel逆变换及其求解方法

Abel逆变换常应用在轴对称的、光学薄的火焰、羽流或等离子体重建。

weixin_49783507的博客 8374

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

基于Jetson Nano与YOLOv5s的无人机道路抛洒物实时检测系统【附数据集+代码】

本文详细介绍基于Jetson Nano与YOLOv5s的无人机道路抛洒物实时检测系统,通过硬件选型、数据采集、模型优化等关键步骤,实现高效的道路安全监控。系统结合无人机高空视角和YOLOv5s算法,能精准识别各类抛洒物,实测准确率达98.2%,为交通管理提供智能化解决方案。

weixin_29081163的博客 1456

Java for循环

for循环 for(int i=0;i

xiaobiao19的博客 735

从原理到实践:详解RGBD相机深度与彩色图像对齐(D2C)算法

本文深入解析了RGBD相机深度与彩色图像对齐(D2C)算法的原理与实现。针对自组装相机中深度图与彩色图不匹配的核心痛点,文章从相机模型、坐标系变换等数学基础讲起,剖析了传统点映射算法的缺陷,并重点介绍了高效的矩形区域映射算法。该算法通过将深度像素视为矩形区域进行映射,有效解决了空洞和遮挡问题,并附有可直接复用的C++代码与优化技巧,为三维重建、机器人视觉等应用奠定坚实基础。

weixin_28363123的博客 242

区块链技术与应用 【全国职业院校技能大赛国赛题目解析】Caliper从0到使用

技能大赛样题解析,caliper题目从0到使用

weixin_52865146的博客 2080

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

一文搞定离线环境下的RAG引擎部署

在人工智能浪潮下,技术已成为构建智能问答、文档分析和代码助手等应用的核心。然而,在许多企业场景中,出于数据安全和性能的考虑,服务器往往部署在中,并要求极致的推理效率。这给依赖外部资源的应用部署带来了巨大挑战。如何在这种严苛的环境下,完整、可靠地部署一套包含向量数据库、**高性能推理服务(vLLM)**和Python后台的复杂RAG系统呢?本文将为你提供一个,手把手教你如何使用 Docker 技术,将一套基于 Weaviate 和的 Python RAG 应用完整打包,并在离线环境中一键部署。

木鱼时刻的专栏 1242

java增强for循环中获取index

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

weixin_34178244的博客 7015

YOLOv8工业缺陷检测实战:攻克光照不均难题,精度从70%到92%的全流程优化(附缺陷数据集)

YOLOv8在工业缺陷检测中突破光照不均难题,核心是“硬件控光+数据造景+模型聚焦+训练攻坚硬件控光:从源头减少光照变异,降低算法难度;数据造景:用CLAHE、合成样本让模型“见过足够多的光照情况”;模型聚焦:用ECA注意力和Focal-EIoU损失,让模型盯住缺陷而非光照;训练攻坚:分阶段+难例挖掘,强迫模型学习薄弱点。这套方案已在汽车轴承、手机外壳、PCB板3类产线落地,平均精度提升20%+,漏检率控制在0.08%以内,完全满足工业级要求。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1195

【华为机试真题 Python实现】分苹果

《华为机试真题》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议!本文解法非最优解(即非性能最优)。A,B两个人把苹果分为两堆,A希望按照它的计算规则等分苹果,他的计算规则是按照二进制加法计算,并且不计算走位,12+5=9(1100+0101=9), B的计算规则是十进制加法,包括正常进位,B希望在满足A的情况下获取苹果重量最多,输入苹果的数量和每个苹果重量,输出满足A的情况下获取的苹果总重量, 如果无法满足A的要

3413

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

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

for循环

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

weixin_34072857的博客 77

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

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

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

weixin_28795975的博客 524

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

余额充值