数组中的方法Ref

use*_*115 0 java-8

stream喜欢这样.是否有可能从.map(i->arr[i]).map(arr)改为:因为两者都是我?

public String toString() {
        return Arrays.toString(IntStream.range(0, position).map(i->arr[i]).toArray());
    }
Run Code Online (Sandbox Code Playgroud)

Mis*_*sha 5

没有办法i -> arr[i]用方法参考表达.但是,Arrays类包含可以简化此代码的方法.

您可以使用3参数Arrays.stream来避免流式传输索引: Arrays.stream(arr, 0, position)相当于IntStream.range(0, position).map(i -> arr[i])

由于您正在使用流做的所有操作都是从中创建一个新数组,因此您可以使用它Arrays.copyOfRange(arr, 0, position)来避免完全使用流.

  • 甚至更短,`Arrays.copyOf(arr,position)`.或者考虑到最终目标是字符串表示,`Arrays.stream(arr,0,position).mapToObj(String :: valueOf).collect(Collectors.joining(",","[","]")) ` (2认同)