gpt4 book ai didi

java - 有没有办法缩短java中的for-each循环?

转载 作者:行者123 更新时间:2023-11-30 06:08:19 26 4
gpt4 key购买 nike

我想在java中迭代数组的一半。有没有什么优雅的方法可以缩短这个时间,例如使用 for-each 循环?

int[] array = {0,1,2,3,4,5};

for (int i = 0; i<array.length/2; i++)
{
System.out.println(array[i]);
}

最佳答案

如果您使用Java中Arrays类的asList方法将数组转换为列表,那么您可以使用forEach方法在 Java 的 List 类中,在一行中打印出列表的每个元素,

Arrays.asList(array).forEach(System.out::println);

要仅打印一半数组,我建议使用 copyOfRange 方法将一半数组复制到新数组中,

Integer[] newArray = Arrays.copyOfRange(array, 0, array.length/2);
Arrays.asList(newArray).forEach(System.out::println);

编辑: 就像 Marko Topolnik 指出的那样,我们实际上是从原始类型数组而不是对象类型开始,因此为了使用 asList 方法,我们必须将数组转换为对象数组(使用 Integer[] integerArray = ArrayUtils.toObject(array);int 转换为 Integer)。然而,这看起来很乏味/效率低下,OP 要求更短的方法,所以我的建议是使用 Marko 的方法,

Arrays.stream(array).limit(array.length/2).forEach(System.ou‌​t::println);

编辑2:就像Amber Beriwal指出的那样,应该注意的是,尽管上面的一行解决方案由于其简洁而看起来很漂亮,但与OP的原始解决方案相比,它仍然非常低效/缓慢方法。因此,我想重申 Amber 的评论,即 OP 和其他人应该坚持使用原来的 for 循环。

for (int i = 0; i < array.length/2; i++)
{
System.out.println(array[i]);
}

关于java - 有没有办法缩短java中的for-each循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39946892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com