我有一个包含TreeMap的MyMap类.(说它是狗的集合,键是字符串).
public class MyMap {
private TreeMap<String, Dog> map;
...
}
Run Code Online (Sandbox Code Playgroud)
我想用for-each循环将MyMap迭代.我知道如果我的类是LinkedList包装器我会怎么做:
public class MyList implements Iterable<Dog> {
private LinkedList<Dog> list;
...
public Iterator<Dog> iterator() {
return list.iterator();
}
}
Run Code Online (Sandbox Code Playgroud)
但是这样的解决方案不适用于TreeMap,因为TreeMap没有迭代器().那么如何才能使MyMap可迭代?
除了MyMap之外,同样的问题包含了HashMap(而不是TreeMap).
谢谢.
我想创建一个TreeMap,使用图片填写treemap矩形.我可以假设所有图片都具有相同的宽度和高度(即宽高比).因此,我需要一个treemapping算法来创建具有给定比率的矩形,我是否能够将图片放在那里(如果需要,可能会缩放图片).
你能推荐一个吗?
我正在创建一个java应用程序,它将存储一堆随机单词(可以随时添加到应用程序或从应用程序中删除).我想快速查找以查看给定单词是否在字典中.什么是最好的java数据结构用于此?截至目前,我正在考虑使用hashMap,并使用相同的单词作为值和该值的键.这是常见做法吗?对于(键,值)对中的键和值使用相同的字符串对我来说似乎很奇怪,所以我想确保没有更好的想法,我忽略了.
我也在考虑使用treeMap来保持单词排序,给我一个O(lgn)查找时间,但hashMap应该给出预期的O(1)查找时间,因为我理解它,所以我认为这会更好.
所以基本上我只是想确保hashMap想法与字符串加倍,因为每个(键,值)对中的键和值都是一个很好的决定.谢谢.
我在D3中实现了Zoomable Treemap(http://bost.ocks.org/mike/treemap/),但是我已对其进行了修改,因此单击时叶子将转到URL.如果标题太长,它还会添加省略号.
我想在叶子上实现自动换行,但不能让它起作用.我想在文本中添加一组tspans,但我对执行顺序的挣扎过多,无法理解放在哪里.
代码:https://secure.polisci.ohio-state.edu/faq/d3/zoomabletreemap.htm
数据:https://secure.polisci.ohio-state.edu/faq/d3/zoomabletreemap.json
我已经研究过我要么需要tspans分解它,要么需要带有文本内部的div但是不知道怎么做.有一些常规D3 Treemap的文本换行示例,但我没有找到Zoomable Treemap,并且代码明显不同.
在我的代码中,我在彼此内部使用了一组交错的LinkedHashMap,如下所示。该代码很好,给了我想要的结果,除了它会自动删除重复项。我无法找出如何使用TreeMap或Set来保留重复项。
LinkedHashMap<String, LinkedHashMap<Integer, LinkedHashMap<String, Vector<String>>>>
dataAll =new LinkedHashMap<String, LinkedHashMap<Integer, LinkedHashMap<String,
Vector<String>>>>();
Run Code Online (Sandbox Code Playgroud) Map<Integer, String> map = new TreeMap<Integer, String>();
// Add Items to the TreeMap
map.put(new Integer(8), "Eight");
map.put(new Integer(9), "Nine");
map.put(new Integer(1), "One");
map.put(new Integer(4), "Four");
map.put(new Integer(10), "Ten");
map.put(new Integer(5), "Five");
map.put(new Integer(6), "Six");
map.put(new Integer(2), "Two");
map.put(new Integer(3), "Three");
map.put(new Integer(7), "Seven");
keys = map.keySet();
for (Iterator i = keys.iterator(); i.hasNext();) {
Integer key = (Integer) i.next();
String value = (String) map.get(key);
System.out.println(key + " = " + value);
}
Run Code Online (Sandbox Code Playgroud)
在其中一篇文章中,我看到TreeMap需要 O(log(n))时间才能获得/投入.有人可以回答为什么需要O(log(n)),即使它可以通过get/put使用密钥直接搜索?
我有以下密钥:值对.
A56:A64=9, A65:A73=9, A2:A8=7, A49:A55=7, A20:A26=7, A9:A19=11, A43:A48=6, A27:A42=16
Run Code Online (Sandbox Code Playgroud)
我想按升序排序.我试过用a TreeMap但得到了这个:
{A20:A26=7, A27:A42=16, A2:A8=7, A43:A48=6, A49:A55=7, A56:A64=9, A65:A73=9, A9:A19=11}
Run Code Online (Sandbox Code Playgroud)
A2:A8 = 7应该是第一个,但它是第三个.
请让我知道如何解决这个问题.
我需要一个Map1号大小并开始想知道什么是最好的,一个TreeMap或一个HashMap?
我的想法TreeMap会更好,因为初始化和向a添加一个值HashMap将导致它创建一个包含15个条目的表,而我认为TreeMap是一个红黑树实现,其中一个大小只有一个根节点.
随着中说,我想这取决于hashCode/ compareTo对的关键HashMap/ TreeMap分别.
最终,我认为在性能方面确实无关紧要,我在考虑最佳实践.我想最佳性能将来自一个自定义的一个条目Map实现,但这有点荒谬.