相关疑难解决方法(0)

从流中收集连续的对

鉴于如下的流{ 0, 1, 2, 3, 4 },

我怎样才能最优雅地将其转换为给定的形式:

{ new Pair(0, 1), new Pair(1, 2), new Pair(2, 3), new Pair(3, 4) }

(假设,当然,我已经定义了类对)?

编辑:这不是严格关于整数或原始流.对于任何类型的流,答案应该是通用的.

java java-8 java-stream

92
推荐指数
10
解决办法
5万
查看次数

是否可以在Stream中获取下一个元素?

我正在尝试将for循环转换为功能代码.我需要向前看一个值,并且还要看一个值.是否可以使用流?以下代码是将罗马文本转换为数值.不确定带有两个/三个参数的reduce方法是否有帮助.

int previousCharValue = 0;
int total = 0;

for (int i = 0; i < input.length(); i++) {
    char current = input.charAt(i);

    RomanNumeral romanNum = RomanNumeral.valueOf(Character.toString(current));

    if (previousCharValue > 0) { 
        total += (romanNum.getNumericValue() - previousCharValue);
        previousCharValue = 0;
    } else {
        if (i < input.length() - 1) {

            char next = input.charAt(i + 1);
            RomanNumeral nextNum = RomanNumeral.valueOf(Character.toString(next));
            if (romanNum.getNumericValue() < nextNum.getNumericValue()) {
                previousCharValue = romanNum.getNumericValue();
            }
        }
        if (previousCharValue == 0) {
            total += romanNum.getNumericValue();
        }

    } …
Run Code Online (Sandbox Code Playgroud)

java java-8

17
推荐指数
3
解决办法
1万
查看次数

标签 统计

java ×2

java-8 ×2

java-stream ×1