标签: treemap

jdk.serialFilter 不能用于限制 Java 中 TreeMap 的深度(防止通过 Java 进行 DoS 攻击)

如何通过 Java 防止 DoS 攻击TreeMap

我的代码有一个接受Map对象的 API 。现在我想阻止客户端发送Map一定长度的对象。

现在maxarrayinjdk.serialFilter能够阻止客户端发送HashMap大小 >的对象maxarray

我也想这样做TreeMap。但是maxarrayfield 对TreeMap. 它无法拒绝该请求。

我也设置了maxdepth尺寸。但没有任何效果。

任何人都可以帮我解决这个问题吗?

java security denial-of-service treemap deserialization

7
推荐指数
2
解决办法
328
查看次数

Squarify - 自动调整树状图中标签的大小

我正在使用Squarify在 Python 中实现一个简单的树形图。

我正在绘制艺术家姓名及其在所考虑的歌曲图表中的流百分比,正方形越大/越暗,值越高。

我的代码如下:

dataGoals = sort_by_streams[sort_by_streams["Streams"]>1]

#Utilise matplotlib to scale our stream number between the min and max, then assign this scale to our values.
norm = matplotlib.colors.Normalize(vmin=min(dataGoals.Streams), vmax=max(dataGoals.Streams))
colors = [matplotlib.cm.Blues(norm(value)) for value in dataGoals.Streams]

#Create our plot and resize it.
fig1 = plt.figure()
ax = fig1.add_subplot()
fig1.set_size_inches(16, 4.5)

#Use squarify to plot our data, label it and add colours. We add an alpha layer to ensure black labels show through
labels = ["%s\n%.2f" % …
Run Code Online (Sandbox Code Playgroud)

python matplotlib treemap squarify

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

Scala 2.8 TreeMap和自定义排序

我正在从scala 2.7切换到scala 2.8并使用订购.它看起来很直接,但我想知道我可以减少一点点冗长.例如:

scala> case class A(i: Int)
defined class A
scala> object A extends Ordering[A] { def compare(o1: A, o2: A) = o1.i - o2.i}
defined module A
Run Code Online (Sandbox Code Playgroud)

如果我然后尝试创建一个TreeMap,我会收到一个错误

scala> new collection.immutable.TreeMap[A, String]()
<console>:10: error: could not find implicit value for parameter ordering: Ordering[A]
       new collection.immutable.TreeMap[A, String]()
       ^
Run Code Online (Sandbox Code Playgroud)

但是,如果我明确指定对象A作为排序它可以正常工作.

scala> new collection.immutable.TreeMap[A, String]()(A)
res34: scala.collection.immutable.TreeMap[A,String] = Map()
Run Code Online (Sandbox Code Playgroud)

我是否总是必须明确指定顺序或是否有更短的格式?

谢谢

scala treemap scala-2.8

6
推荐指数
3
解决办法
8879
查看次数

像windirstat的Python图形?

我有兴趣使用python根据正方形的大小(以及可选的颜色)制作表示值大小的图表.基本上我正在寻找一种方法来概述一堆值,例如windirstat用硬盘驱动器使用的好旧程序(它基本上会形成一个代表你的硬盘的大方块,然后构成它内部区域的小方块不同的程序,方块越大文件越大,颜色表示文件的类型).我对matplotlib非常熟悉,我认为用它做这样的事情是不可能的.有没有其他python包可以帮助?如果不是,任何更低级别的建议?我想如果我能找到一种以编程方式绘制框的方法,我可以手动完成(我并不真正关心格式,但导出SVG以及PNG的选项会很好).

最终,让它像windirstat一样具有互动性是很好的,如果你将鼠标悬停在一个特定的方格上,你可以获得更多信息,如果你点击它,也许你会进去看看它的构成特别广场.我只熟悉wxpython的GUI内容,不确定它是否可以用于这样的东西.现在我很乐意输出它们.

非常感谢!亚历克斯

编辑:谢谢大家,你的答案都有很多帮助.

python diagram matplotlib treemap treemaps

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

TreeMap put()会默默删除其他条目吗?

我经历了一些非常怪异的TreeMap行为,我在缩小一个小测试用例时遇到了一些麻烦,所以请耐心等待.

我想从运行时提供的文件中将大量键值对读入Map.我正在使用自定义密钥类.后来,当我把条目撤回时,我发现其中一个或多个丢失了.使用调试器和一些测试用例,我已经确定缺少的条目在读取阶段肯定会消失,但我不确定是什么导致它.

基本上:

Map<MyKey,Double> map = new TreeMap<MyKey,Double>();
map.put(key1,value1);

// ... put another ~500 entries into the map ...

assertTrue(map.containsKey(key1)); // passes
if (!map.containsKey(keyN)) { 
    map.put(keyN, valueN); // this code executes
}
assertTrue(map.containsKey(key1)); // FAILS
Run Code Online (Sandbox Code Playgroud)

......实质上,向地图添加一个全新的密钥会导致无关的条目失效.

  • 如果我只是单独添加key1和keyN,则key1保留在地图中 - 介入的500个条目在某种程度上很重要
  • 如果我从2 ..(N-1)中删除一个或两个任意键,则在添加keyN时仍会启动key1
  • 如果我从2 ..(N-1)中删除了大范围的键,则key1在添加keyN时保持不变,但是当添加keyQ时会掉出来,在行下面还有~300个键
  • 不幸的是,当keyN踢出key1的地图的大小是一样的地图的大小时keyQ踢出key1的,所以它可能不是一个有限的尺寸问题
  • 如果我使用HashMap,则key1仍保留在地图中
  • 自定义键类MyKey对Comparable,equals和hashCode使用相同的逻辑.

我最初使用TreeMap是因为我希望使用大型数据集,而TreeMap的内存效率更高一些.HashMap将是一个很好的选择,但看到TreeMap以这种方式表现仍然令人震惊 - 任何人都对这里发生的事情有所了解?

java key map treemap comparable

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

如何整理TreeMap <String,Integer>?

我有一张地图:TreeMap<String, Integer> m = new TreeMap<>();我有一个完整的字母和值,显示我的文字中每个字母的次数.

我想按递减计数顺序对该地图进行排序; 也就是说,最常见的字母在第一行,最后一行表示最不频繁的字母.如果两个字母具有相同的频率,那么字母表中首先出现的字母必须首先出现.怎么做?

我试过Comparator:

public int compare(String a, String b) {
        if (base.get(a) >= base.get(b) && a.compareToIgnoreCase(b) < 0) {
            return -1;
        } else {
            return 1;
        }
    }
Run Code Online (Sandbox Code Playgroud)

但仍然,不是它,输出是:

D 3
E 3
A 2
S 5
Run Code Online (Sandbox Code Playgroud)

伙计们......之前发现这个,这根本没有帮助.好的输出应该是:

S 5
D 3
E 3
A 2
Run Code Online (Sandbox Code Playgroud)

java treemap

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

tmPlot在命名空间中,但找不到它的依赖项

我有一个使用tmPlot函数from 的包treemap,但是当我尝试使用该函数时,它会抛出一个错误,它没有加载其中一个依赖项:

Error in tmPlot(data, index = index, vSize = vSize) : 
  could not find function "brewer.pal"
Run Code Online (Sandbox Code Playgroud)

依赖项已安装在命名空间中.

这个问题有一些设置,是一个包问题,但我试图尽可能减少它:

确保已安装treemap(及其所有依赖项).

我做了一个名为'anRpackage'的目录.里面是一个文件夹('R')和一个带有以下文字的DESCRIPTION文件:

Package: anRpackage
Title: What the package does (short line)
Version: 1.0
Author: Who wrote it
Maintainer: Who to complain to <yourfault@somewhere.net>
Description: More about what it does (maybe more than one line)
License: What license is it under?
Imports:
    treemap
Collate:
    'maketree.R'
Run Code Online (Sandbox Code Playgroud)

R /文件夹里面是一个名为'maketree.R'的R文件.其内容是:

#' maketree
#' 
#' @importFrom treemap tmPlot
#' @export …
Run Code Online (Sandbox Code Playgroud)

namespaces r treemap

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

树图如何使用红黑树算法

我已经阅读了很多关于红黑树的文章,其中需要O(log n)时间进行操作.我不太清楚它是如何工作的以及实际上树图如何使用红黑树算法来平衡树与二叉搜索树相比.

参考链接 https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/

任何人都可以用一个例子解释算法是如何工作的.

treemap red-black-tree

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

使用ggplot2中的圆形包装可视化分层数据?

我有一些分层数据,例如,

> library(dplyr)
> df <- data_frame(id = 1:6, parent_id = c(NA, 1, 1, 2, 2, 5))
> df
Source: local data frame [6 x 2]

     id parent_id
  (int)     (dbl)
1     1        NA
2     2         1
3     3         1
4     4         2
5     5         2
6     6         5
Run Code Online (Sandbox Code Playgroud)

我想通过圆形包装图在"自上而下"的视图中绘制树:http: //bl.ocks.org/mbostock/4063530

圆形包装图

以上链接适用于d3库.是否有一个等价物允许我在ggplot2中制作这样的情节?

(我希望这个情节在一个闪亮的应用程序,它确实支持d3,但我之前没有使用过d3并且不确定学习曲线.如果d3是明显的选择,我会尝试让它工作.谢谢.)

r treemap ggplot2

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

如何在Java的TreeMap中检索具有最大值的键?

我有一个树图声明如下:

TreeMap<Integer, Integer> tree = new TreeMap<Integer, Integer>();
Run Code Online (Sandbox Code Playgroud)

如何检索具有最大值的密钥。是否有O(1)方法来实现这一目标。我知道可以在O(1)时间内从TreeMap中检索最大和最小键,如下所示:

int maxKey = tree.lastEntry().getKey();
int minKey = tree.firstEntry().getKey();
Run Code Online (Sandbox Code Playgroud)

感谢帮助。

java treemap

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