小编Gra*_*oss的帖子

在Java的流中,Haskell的scanl相当于什么?

这个问题要求python时,在Java的流中Haskell的scanl相当于什么?

到目前为止我提出的最好的是使用

reduce(identity, accumulator, combiner)
Run Code Online (Sandbox Code Playgroud)

使用累加器保存最新结果并将结果累积到列表中,尽管可能不会使用组合器.我也不确定如何防止它并行使用,它不起作用.

也许Stream是(相当于)scanl的错误接口?

java haskell java-stream

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

在Clojure中,Java的computeIfAbsent或putIfAbsent相当于什么?

使用Java中的映射,您可以编写map.computeIfAbsent(key, f)该映射以检查映射中是否存在密钥,如果不是,则调用f密钥以生成值,并在映射中输入该值.如果map.putIfAbsent(key, value)地图中尚不存在该键,您还可以将值放在地图中.

忽略Java方法也返回值的事实,而是想要返回新映射,Clojure中的等效代码是什么?

到目前为止,我提出的最好的方法就是用类似的东西来推动我自己

(defn compute-if-absent [map key f]
  (if (key map)
    map
    (assoc map key (f key))))
Run Code Online (Sandbox Code Playgroud)

滚动我自己有替代方案吗?

java dictionary clojure

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

如何通过最新版本的 java webstart 将系统属性传递给 Java?

在我使用旧 javaws 的 Linux 机器上,我可以通过 javaws 将系统属性传递给 Java,例如

javaws -J-Dsome.key=some.value http://some.jnlp
Run Code Online (Sandbox Code Playgroud)

但是,在我的 Mac 上使用较新版本的 javaws 似乎不起作用。“-Dsome.key=some.value”没有传递给java进程(看看javaws启动的java进程,-D选项根本就不存在)。但是,其他 Java 选项可以毫无问题地传递,例如。

javaws -J-verbose:gc http://some.jnlp
Run Code Online (Sandbox Code Playgroud)

在 Linux 和 Mac 上都可以正常工作(我可以在 javaws 启动的 java 进程中看到 -verbose:gc 选项很好)。

有没有人有任何想法?是安全设置吗?这是Mac上javaws中的错误吗?

java java-web-start

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

如何在Ruby中继承抽象单元测试?

我有两个单元测试,应该使用略有不同的设置方法共享许多常见测试.如果我写的东西像

class Abstract < Test::Unit::TestCase
  def setup
    @field = create
  end

  def test_1
    ...
  end
end

class Concrete1 < Abstract
  def create
    SomeClass1.new
  end
end

class Concrete2 < Abstract
  def create
    SomeClass2.new
  end
end
Run Code Online (Sandbox Code Playgroud)

然后Concrete1似乎没有从Abstract继承测试.或者至少我不能让它们在日食中运行.如果我为包含Concrete1的文件选择"Run all TestCases",那么即使我不想要它也会运行Abstract.如果我指定Concrete1那么它根本不运行任何测试!如果我在Concrete1中指定test_1,那么它会抱怨它无法找到它("uncaught throw:invalid_test(ArgumentError)").

我是Ruby的新手.我在这里错过了什么?

ruby inheritance unit-testing testunit

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

如何在不阻塞使用流的情况下处理队列的所有元素?

假设我有一个Queue<String>,我想清空队列的当前内容并对每个元素做一些事情。使用循环我可以做类似的事情:

while (true) {
    String element = queue.poll();
    if (element == null) {
        return;
    }
    System.out.println(element);
}
Run Code Online (Sandbox Code Playgroud)

这感觉有点丑。我可以用流做得更好吗?

请注意,可能有其他线程同时访问队列,因此依赖队列的大小来知道要轮询的项目数量很容易出错。

java queue java-stream

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

JDK中是否有方法引用来减去双精度数?

Double::sum是添加双精度的方法参考,即.(a,b) -> a+b.

为什么JDK中没有用于减号的方法参考?是(a,b) -> a-b吗?

java java-8 method-reference

0
推荐指数
1
解决办法
179
查看次数