我有一个列表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) 我正在探索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/但它似乎与我在其他教程上看到的不一致.
我刚刚开始使用Apache Spark(在Scala中,但语言无关紧要).我正在使用独立模式,我想要从本地文件系统处理文本文件(因此没有像HDFS那样分发).
根据该textFile
方法的文档SparkContext
,它将
从HDFS读取文本文件,本地文件系统(在所有节点上都可用)或任何支持Hadoop的文件系统URI,并将其作为字符串的RDD返回.
对我来说不清楚的是,是否可以将整个文本文件复制到所有节点,或者如果输入数据已经被分区,例如,如果使用4个节点和1000行的csv文件,则每个节点上有250行.
我怀疑每个节点应该有整个文件,但我不确定.
是否存在任何浏览器问题,总是在html中折叠空标签.因此,例如,可以像这样编写空头标签
<head></head>
Run Code Online (Sandbox Code Playgroud)
但也可以像这样写
<head/>
Run Code Online (Sandbox Code Playgroud)
第二种情况是否会导致任何场景出现问题?
谢谢
我一直在学习Spring 5 WebFlux,反应式编程和websockets.我看过Josh Long的Spring Tips:Spring Framework 5的Reactive WebSockets.其通过WebSocket连接从服务器将数据发送到客户端的代码使用一个Spring集成IntegrationFlow
一个发布到PublishSubcribeChannel
其中有一个自定义MessageHandler
订阅了它,是以消息时,它转换为一个对象,然后将其转化成JSON和发射到FluxSink
从提供给Flux.create()的回调函数,用于发送给WebSocketConnection
.
我想知道是否使用IntegrationFlow
和PublishSubscribeChannel
是将事件从后台进程推送到客户端的推荐方法,或者在这个特定示例中是否更方便(监视文件系统).我想如果你能控制后台进程,你可以让它FluxSink
直接发射吗?
我正在考虑类似于以下的用例:
我的应用程序中有一个@JavaScript注释,用于从类路径加载.js文件.
现在我已对文件进行了更新并重新部署(本地),但我总是将旧版本恢复原状.我已经尝试重新加载所有内容(ctrl + R,ctrl + F5),但这不起作用,我也不希望用户必须这样做.
我过去使用的一个技巧(没有Vaadin)是附加一个带有版本的请求参数(例如?version = 1)并更新它以便URL发生变化.但显然不允许@JavaScript注释(Vaadin甚至不尝试加载文件).
我有一个页面设置如下
<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之上,而不是绝对的定位路线?
如何将现有的彩色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) 假设我有一个循环遍历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)
在迭代时我是否保持对流的头部(以及所有其他元素)的引用,我知道应该避免这种情况吗?如果是这样,那么实现同样的事情的更好方法是什么?
调用它的代码是(我希望)不保留引用.假设list
是List[X]
代码正在调用
loop(list.sliding(n).toStream, initialY)
Run Code Online (Sandbox Code Playgroud)
编辑:我知道这可以很容易地做到没有尾递归(例如使用foldLeft
)但非简化代码不是一次只循环一个元素(有时s
使用而不是s.tail
有时s.tail.dropWhile(...)
使用.所以我想找出来如何正确使用Stream
.
所以我想在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对象接缝这么奇怪.我该如何声明这个监听器?
谢谢!