小编Rat*_*han的帖子

Java流问题,mapToInt和average方法

为什么我可以average()在一个上调用方法而不在另一个上调用方法?它们不应该是等价的吗?

示例 1 - 作品

List<String> stringList = new ArrayList<>();
    stringList.add("2");
    stringList.add("4");
    stringList.add("6");
// String array ("2","4", "6"
averageValue = stringList.stream()
                .mapToInt(s -> Integer.valueOf(s))
                .average()
                .getAsDouble();   
Run Code Online (Sandbox Code Playgroud)

示例 2 - 不编译(删除 mapToInt 调用,因为已经传递了整数流)

List<Integer> IntegerList = new ArrayList<>();
        IntegerList.add(2);
        IntegerList.add(4);
        IntegerList.add(6);

averageValue = IntegerList.stream()
                    .average()
                    .getAsDouble();  
Run Code Online (Sandbox Code Playgroud)

问题是,当我已经将整数流传递给它时,为什么我需要调用 mapToInt 方法?

java average java-stream

6
推荐指数
1
解决办法
153
查看次数

C++中的输入流。与 cin unget() 函数有点混淆

任何人都可以清除我对cin.unget()功能的一些困惑。请考虑这段代码:

void skip_to_int()
{
    if (cin.fail()) {                   // we found something that wasn’t an integer
        cin.clear();                    // we’d like to look at the characters
        for (char ch; cin>>ch; ) {      // throw away non-digits
            if (isdigit(ch) || ch=="-") {
                     cin.unget();       // put the digit back,
                                        // so that we can read the number
                     return;
            }
        }
    }
    error("no input");                  // eof or bad: give up
}
Run Code Online (Sandbox Code Playgroud)

如果cin.unget()将数字放回输入流以再次读取,我会不会得到cin>>ch相同的字符来再次检查条件,从而陷入无限循环?

c++ cin

5
推荐指数
1
解决办法
65
查看次数

标签 统计

average ×1

c++ ×1

cin ×1

java ×1

java-stream ×1