小编Jee*_*ese的帖子

takeWhile()与flatmap的工作方式不同

我正在创建片段与takeWhile探索其可能性.与flatMap结合使用时,行为与预期不符.请在下面找到代码段.

String[][] strArray = {{"Sample1", "Sample2"}, {"Sample3", "Sample4", "Sample5"}};

Arrays.stream(strArray)
        .flatMap(indStream -> Arrays.stream(indStream))
        .takeWhile(ele -> !ele.equalsIgnoreCase("Sample4"))
        .forEach(ele -> System.out.println(ele));
Run Code Online (Sandbox Code Playgroud)

实际产量:

Sample1
Sample2
Sample3
Sample5
Run Code Online (Sandbox Code Playgroud)

ExpectedOutput:

Sample1
Sample2
Sample3
Run Code Online (Sandbox Code Playgroud)

期望的原因是takeWhile应该执行直到内部条件变为真.我还在flatmap中添加了printout语句以进行调试.流返回两次,符合预期.

但是,如果链中没有flatmap,这样可以正常工作.

String[] strArraySingle = {"Sample3", "Sample4", "Sample5"};
Arrays.stream(strArraySingle)
        .takeWhile(ele -> !ele.equalsIgnoreCase("Sample4"))
        .forEach(ele -> System.out.println(ele));
Run Code Online (Sandbox Code Playgroud)

实际产量:

Sample3
Run Code Online (Sandbox Code Playgroud)

这里实际输出与预期输出匹配.

免责声明:这些代码段仅用于代码练习,不提供任何有效的用例.

更新: 错误JDK-8193856:修复将作为JDK 10的一部分提供.更改将更正whileOps Sink :: accept

@Override 
public void accept(T t) {
    if (take = predicate.test(t)) {
        downstream.accept(t);
    }
}
Run Code Online (Sandbox Code Playgroud)

改变实施:

@Override
public void accept(T t) {
    if (take && …
Run Code Online (Sandbox Code Playgroud)

java lambda java-stream java-9

75
推荐指数
4
解决办法
3874
查看次数

SonarQube和SonarLint的区别

sonarQube究竟与SonarLint有什么不同?SonarQube有一个与之关联的服务器,Sonar lint更像是一个插件.但他们的具体区别是什么?

sonarqube sonarlint

67
推荐指数
3
解决办法
4万
查看次数

边框不能与bootstrap 4一起使用

我是bootstrap的新手,我不确定我是否做错了什么,但我无法让class ="border border-danger"工作.休息所有其他样式工作得很好.这是我的代码.

    <html lang="en">
    <head>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
        <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
    </head>
    <body class="container">
        <div class=" text-center m-2 text-primary">
            
            <h2 class="h4"> SAMPLE DATA FOR RENDERING </h2>    
            <blockquote class="blockquote bg-warning text-white p-2 border" >Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
                Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. …
Run Code Online (Sandbox Code Playgroud)

html css twitter-bootstrap bootstrap-4

4
推荐指数
1
解决办法
1397
查看次数