【问题标题】:Java one liner for loopJava 一个循环的内衬
【发布时间】:2016-12-03 10:42:51
【问题描述】:

Here,有人在 Python 中做了一个单行 for 循环。

另一个例子是这样的:

someList = [f(i) for i in range(16)]

这将是这段代码的单行代码:

someList = []
for i in range(16):
    someList.append(f(i))

或者,在 Java 中:

int[] someList = {}
for (int i = 0; i < 16; i++) {
    someList = append(someList, f(i));
}

这样f 是一个返回整数的函数。

现在,Java 中是否有等效的单行代码?

注意:目前我使用的是Processing,它类似于Java,所以任何用Java编写的代码都可以在Processing中使用。

【问题讨论】:

  • 您不能在 Java 中追加到数组。使用ArrayList 或简单地创建正确大小的数组:int[] someList = new int[16] 然后在循环中执行someList[i] = f(i)
  • 您是否有理由在一行中需要这个?我认为你应该更喜欢可读性而不是简短。 for 循环解决方案很容易理解。为什么不坚持下去呢?

标签: java for-loop processing


【解决方案1】:

Java 8 的 IntStream 救援:

int[] someList = IntStream.range(0, 16).map(i -> f(i)).toArray();

【讨论】:

  • @TimBiegeleisen 原始列表是 OP 是空的,似乎只是被定义为必需品。原来的单行 OP 试图模拟创建一个新的列表/数组:someList = [f(i) for i in range(16)]
猜你喜欢
  • 2017-11-10
  • 1970-01-01
  • 2011-02-23
  • 1970-01-01
  • 1970-01-01
  • 2015-07-09
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
相关资源
最近更新 更多