小编cha*_*hao的帖子

使用Java 8中的Lambda将流收集到HashMap中

我有一个HashMap,我需要使用一些函数进行过滤:

HashMap<Set<Integer>, Double> container
Map.Entry<Set<Integer>, Double> map = container.entrySet()
            .stream()
            .filter(k -> k.getKey().size() == size)
Run Code Online (Sandbox Code Playgroud)

对于size = 2,以下内容应该有效:

containerBeforeFilter = {1,2,3} -> 1.5, {1,2} -> 1.3
containerAfterFilter = {1,2} -> 1.3
Run Code Online (Sandbox Code Playgroud)

在过滤器中应用函数后,我想再次将结果收集到HashMap中.但是,当我尝试应用此处建议的方法时,我会收到非法声明.

因此,在过滤器之后应用的以下语句是非法的:

.collect(Collectors.toMap((entry) -> entry.getKey(), (entry) -> entry.getValue()));
Run Code Online (Sandbox Code Playgroud)

收集未更改的地图值的正确方法是什么,唯一的标准是满足某些关键?

UPDATE

上面代码中的错误是变量的类型map.它应该是Map而不是Map.Entry.

所以功能代码是:

Map<Set<Integer>, Double> map = container.entrySet()
            .stream()
            .filter(k -> k.getKey().size() == size)
            .collect(Collectors.toMap(entry -> entry.getKey(), entry -> entry.getValue()));
Run Code Online (Sandbox Code Playgroud)

java lambda hashmap

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

R:如何相对于x轴扩展(抖动)点?

我在R中有以下代码片段:

dat <- data.frame(cond = factor(rep("A",10)), 
                  rating = c(1,2,3,4,6,6,7,8,9,10))
ggplot(dat, aes(x=cond, y=rating)) +
  geom_boxplot() + 
  guides(fill=FALSE) +
  geom_point(aes(y=3)) +
  geom_point(aes(y=3)) +
  geom_point(aes(y=5))
Run Code Online (Sandbox Code Playgroud)

这个特定的代码片段产生一个箱形图,其中一个点越过另一个点(在上面的例子中,一个点3越过另一个点3).

如何移动点3以使点保持在y轴上的相同位置,但它在x轴上稍微向左或向右移动?

r ggplot2 jitter

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

相关性如何帮助压缩

Hy,我想知道图像中像素之间的相关性如何帮助压缩?另外,为什么我想减少像素之间的相关性以获得更好的压缩(我发现一篇文献中的信息,但我不明白)?我的最后一个问题是:如果相关性R = 0.9,这些信息如何有助于压缩?

谢谢.

compression encoding image correlation

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

Qt 多线程:如何将几个 QRunnable 任务附加到 QThreadPool

我对如何QThreadPool工作感到困惑,无法找到答案。我想要这样的东西:

class Task : public QRunnable { solve problem #nb }
Run Code Online (Sandbox Code Playgroud)

现在,例如,我需要执行 10 个不相关且不共享某些值的任务。我希望我可以做这样的事情:

QThreadPool pool;
pool.addTask(task1);
pool.addTask(task2);
pool.addTask(taskN);
pool.start();
Run Code Online (Sandbox Code Playgroud)

对我来说,上面的例子是一个游泳池。我的任务很少,我添加到池中,最后在每个线程中全部执行,但这不是如何QThreadPools工作的。那么,我可以使用 来解决我的问题QThreadPool,还是应该使用其他东西?

谢谢你。

c++ qt multithreading threadpool

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

当一个情节使用ggplot覆盖另一个时,如何制作自定义图例?

我需要制作一个堆积直方图,绘制两个不同的变量.有一个名为变量的变量T1,另一个名为变量T2.这两个变量有两种不同的状态,一种发生在之前,另一种发生在之后.我想有一个情节,我会同时显示T1T2前后一列,他们的状态,但使用两种不同的颜色(一说表示前状态,另一个表明之后的状态).

这是我到目前为止的代码片段:

pre <- as.data.frame( matrix( nrow=2,ncol=2,byrow=TRUE,c(60,"T1",40,"T2") ) )
post <- as.data.frame( matrix( nrow=2,ncol=2,byrow=TRUE,c(70,"T1",50,"T2") ) )
pre$V1 <- as.numeric(as.character(pre$V1))
post$V1 <- as.numeric(as.character(post$V1))

ggplot() +
geom_histogram(stat="identity", fill=c(rep("red",2)), data=post, aes(x=V2, y=V1, fill=V2, colour="Before")) +
geom_histogram(stat="identity", fill=c(rep("green",2)), data=pre, aes(x=V2, y=V1, fill=V2, colour="After")) +
scale_x_discrete("x axis") +
scale_y_continuous("y axis", limits = c(0, 100)) +
scale_colour_manual(values = c("red","green"))
Run Code Online (Sandbox Code Playgroud)

因此情节看起来很神奇,但是现在我的问题是,我怎样才能得到一个合适的传奇?所以我需要有一种颜色"After"和另一种颜色"Before",但不是作为线条,而是填充框.

plot r ggplot2

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