小编her*_*man的帖子

Java 8 - 转换列表的最佳方法:map或foreach?

我有一个列表myListToParse,我想过滤元素并在每个元素上应用一个方法,并将结果添加到另一个列表中myFinalList.

使用Java 8,我注意到我可以通过两种不同的方式完成它.我想知道他们之间更有效的方式,并理解为什么一种方式比另一种更好.

我对任何有关第三种方式的建议持开放态度.

方法1:

myFinalList = new ArrayList<>();
myListToParse.stream()
        .filter(elt -> elt != null)
        .forEach(elt -> myFinalList.add(doSomething(elt)));
Run Code Online (Sandbox Code Playgroud)

方法2:

myFinalList = myListToParse.stream()
        .filter(elt -> elt != null)
        .map(elt -> doSomething(elt))
        .collect(Collectors.toList()); 
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

174
推荐指数
4
解决办法
14万
查看次数

Jenkinfile DSL如何指定目标目录

我正在探索Jenkins 2.0管道.到目前为止,我的文件非常简单.

node {
    stage "checkout"
    git([url:"https://github.com/luxengine/math.git"])

    stage "build"
    echo "Building from pipeline"
}
Run Code Online (Sandbox Code Playgroud)

我似乎找不到任何方法来设置git将checkout的目录.我也找不到与此相关的任何文件.我找到了https://jenkinsci.github.io/job-dsl-plugin/但它似乎与我在其他教程上看到的不一致.

jenkins jenkins-pipeline

16
推荐指数
3
解决办法
2万
查看次数

Spark:如何将SparkContext.textFile用于本地文件系统

我刚刚开始使用Apache Spark(在Scala中,但语言无关紧要).我正在使用独立模式,我想要从本地文件系统处理文本文件(因此没有像HDFS那样分发).

根据该textFile方法的文档SparkContext,它将

从HDFS读取文本文件,本地文件系统(在所有节点上都可用)或任何支持Hadoop的文件系统URI,并将其作为字符串的RDD返回.

对我来说不清楚的是,是否可以将整个文本文件复制到所有节点,或者如果输入数据已经被分区,例如,如果使用4个节点和1000行的csv文件,则每个节点上有250行.

我怀疑每个节点应该有整个文件,但我不确定.

apache-spark

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

在html中总是自行关闭空标签是否有任何问题?

是否存在任何浏览器问题,总是在html中折叠空标签.因此,例如,可以像这样编写空头标签

<head></head>
Run Code Online (Sandbox Code Playgroud)

但也可以像这样写

<head/>
Run Code Online (Sandbox Code Playgroud)

第二种情况是否会导致任何场景出现问题?

谢谢

html xml browser

8
推荐指数
2
解决办法
507
查看次数

Spring 5 Reactive WebSockets:推荐使用

我一直在学习Spring 5 WebFlux,反应式编程和websockets.我看过Josh Long的Spring Tips:Spring Framework 5的Reactive WebSockets.其通过WebSocket连接从服务器将数据发送到客户端的代码使用一个Spring集成IntegrationFlow一个发布到PublishSubcribeChannel其中有一个自定义MessageHandler订阅了它,是以消息时,它转换为一个对象,然后将其转化成JSON和发射到FluxSink从提供给Flux.create()的回调函数,用于发送给WebSocketConnection.

我想知道是否使用IntegrationFlowPublishSubscribeChannel是将事件从后台进程推送到客户端的推荐方法,或者在这个特定示例中是否更方便(监视文件系统).我想如果你能控制后台进程,你可以让它FluxSink直接发射吗?

我正在考虑类似于以下的用例:

  • 机器学习过程,其进度受到监控
  • 更新发送给玩家的游戏世界状态
  • 聊天室/团队协作软件
  • ...

spring reactive-programming websocket spring-webflux

8
推荐指数
1
解决办法
1198
查看次数

Vaadin @Javascript:清除更新的JS文件的缓存

我的应用程序中有一个@JavaScript注释,用于从类路径加载.js文件.

现在我已对文件进行了更新并重新部署(本地),但我总是将旧版本恢复原状.我已经尝试重新加载所有内容(ctrl + R,ctrl + F5),但这不起作用,我也不希望用户必须这样做.

我过去使用的一个技巧(没有Vaadin)是附加一个带有版本的请求参数(例如?version = 1)并更新它以便URL发生变化.但显然不允许@JavaScript注释(Vaadin甚至不尝试加载文件).

javascript vaadin

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

CSS3 boxshadow在所有其他元素之上?

我有一个页面设置如下

<div class="Header"> Header content </div>

<div class="Content"> Main Body Content </div>
Run Code Online (Sandbox Code Playgroud)

现在在头部类的CSS中,我正在设置一个盒子阴影:3px 3px 10px#000;

然而,这个盒子阴影被Content div掩盖了.有没有办法让这个div的阴影在所有其他div之上,而不是绝对的定位路线?

html css css3

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

如何将BufferedImage转换为黑白?

如何将现有的彩色BufferedImage转换为单色?我希望图像只在两个rgb代码之间完全分开,黑色和白色.因此,如果图像周围的边框是背景的较浅或较暗的阴影,并且背景正在转换为白色,那么我希望边框也转换为白色,依此类推.

我怎样才能做到这一点?

如果需要保存图像/从磁盘加载它,我可以在必要时这样做.

编辑:代码来测试这个:

package test;

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.HashSet;
import javax.imageio.ImageIO;

public class Test
{
    public static void main(String[] args)
    {
        try
        {
            BufferedImage img = ImageIO.read(new File("http://i.stack.imgur.com/yhCnH.png") );
            BufferedImage gray = new BufferedImage(img.getWidth(), img.getHeight(),
                    BufferedImage.TYPE_BYTE_GRAY);

            Graphics2D g = gray.createGraphics();
            g.drawImage(img, 0, 0, null);

            HashSet<Integer> colors = new HashSet<>();
            int color = 0;
            for (int y = 0; y < gray.getHeight(); y++)
            {
                for (int x = 0; x < gray.getWidth(); x++)
                {
                    color …
Run Code Online (Sandbox Code Playgroud)

java monochrome bufferedimage image

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

Scala Streams:如何避免保持对头部(和其他元素)的引用

假设我有一个循环遍历a元素的尾递归方法Stream,就像这样(简化代码,未测试):

@tailrec
def loop(s: Stream[X], acc: Y): Y = 
  s.headOption match {
    case None => acc
    case Some(x) => loop(s.tail, accumulate(x, acc))
  }
Run Code Online (Sandbox Code Playgroud)

在迭代时我是否保持对流的头部(以及所有其他元素)的引用,我知道应该避免这种情况吗?如果是这样,那么实现同样的事情的更好方法是什么?

调用它的代码是(我希望)不保留引用.假设listList[X]代码正在调用

loop(list.sliding(n).toStream, initialY)
Run Code Online (Sandbox Code Playgroud)

编辑:我知道这可以很容易地做到没有尾递归(例如使用foldLeft)但非简化代码不是一次只循环一个元素(有时s使用而不是s.tail有时s.tail.dropWhile(...)使用.所以我想找出来如何正确使用Stream.

recursion scala stream

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

如何在Kotlin中将函数声明为变量

所以我想在Kotlin创建一个监听器.我只想传递一个将在我的代码中执行的方法.像这样:

override fun setButtonClickListener(listener: (text: String) -> Unit) {
    this.listener = listener
}
Run Code Online (Sandbox Code Playgroud)

但是,当我宣布我的听众时,我必须这样声明:

private var listener : (text: String) -> Unit = null!!
Run Code Online (Sandbox Code Playgroud)

否则我的AS会抱怨.但是这个 !!在一个null对象接缝这么奇怪.我该如何声明这个监听器?

谢谢!

functional-programming listener kotlin

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