我试图将多个排序列表合并到一个TreeSet中。然后,我考虑在该TreeSet上应用Binary Search算法,以O(log n)时间复杂度来检索元素。
下面是我的代码,在其中,我以一种方法传递列表列表,并将它们组合在一起TreeSet
以避免重复…里面的所有列表inputs
都经过排序-
private TreeSet<Integer> tree = new TreeSet<Integer>();
public void mergeMultipleLists(final List<List<Integer>> inputs) {
tree = new TreeSet<Integer>();
for (List<Integer> input : inputs) {
for(Integer ii : input) {
tree.add(ii);
}
}
}
public List<Integer> getItem(final Integer x) {
// extract elements from TreeSet in O(log n)
}
x
在TreeSet
,如果有,则返回它,如果它不存在则返回从下一个最大的价值TreeSet
。还是与当前使用的数据结构相比,我可以使用其他数据结构更好?
更新的代码:
私有TreeSet树= new TreeSet();
public SearchItem(final List<List<Integer>> inputs) {
tree = new TreeSet<Integer>();
for (List<Integer> input : inputs) {
tree.addAll(input);
}
}
public Integer getItem(final Integer x) {
if(tree.contains(x)) {
return x;
} else {
// now how do I extract next largest
// element from it if x is not present
}
}
TreeSet
由NavigableMap
a
TreeMap
专门支持。调用contains()
的TreeSet
委托TreeMap.containsKey()
,这是一个二进制搜索实现。
您可以使用来检查对象是否包含在集合中TreeSet.contains()
,但是您必须首先拥有该对象。如果您希望能够查找和检索对象,则Map
实现会更好。
我正在尝试将多个已排序的列表合并到一个树集中。。然后我考虑在树集上应用二进制搜索算法,以O(logn)的时间复杂度检索元素。。 下面是我的代码,我在其中一个方法中传递列表列表,并将它们组合成以避免重复...所有列表中的排序- 首先,这是将多个排序列表合并到树集的正确方法吗?有没有直接的方法可以有效地合并TreeSet中的多个排序列表 或者,与我目前使用的数据结构相比,我更适合使用另一种数据结构?
问题内容: 希望有人知道此Java认证问题的答案: 哪两个结果可能?(选择两个。) A)7 0 B)7 1 C)7 3 D)-1 0 E)-1 1 F)-1 3 唯一的正确答案是E)-1 1,因为如果您执行二进制搜索算法,这是唯一可能的输出。但是他们要我选择两个…所以第二个必须是B)7 1然后,因为排序数组中的第二个binarySearch总是会返回。 所以我的问题是,为什么B)7 1是可能的结果
问题内容: 我的清单包含大小等的集合。我尝试这样做,但似乎不起作用。 我想要的最终结果是。 我可以尝试添加在所有的元素和那种出来再做出新的的。但是,有某种班轮吗? 更新: 这可行,但是可以简化吗? 问题答案: @Eugene的回答很甜蜜,因为番石榴很甜。但是,如果您碰巧在类路径中没有番石榴,这是另一种方式: 首先,我将所有集合映射到一个流中,然后对所有元素进行排序,最后,将整个排序后的流收集到集合
问题内容: 我是XML的新手。我想根据请求名称阅读以下XML。请帮助我了解如何以Java读取以下XML 问题答案: 如果你的XML是字符串,则可以执行以下操作: 如果你的XML在文件中,Document document则将被实例化为: 在document.getDocumentElement()返回你是文档的文档元素节点(你的情况 )。 一旦有了rootElement,就可以访问元素的属性(通过
本文向大家介绍TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何比较元素?相关面试题,主要包含被问及TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何比较元素?时的应答技巧和注意事项,需要的朋友参考一下 考察点:Tree TreeSet要求存放的对象所属的类必须实现Comparable接
我正在尝试创建一个用户可以在浏览器中存储注释的应用程序。 为了弄清楚用户在文档中创建注释的位置,我正在尝试存储所选文本的xpath和偏移量。 我到处搜索过,似乎有很多从xPath字符串中检索元素的示例,但没有很好的从DOM元素中查找xPath的示例。 以下是我尝试过的: 其中getXPathForElement如下所示: 这段代码给出了一个很长的看起来很奇怪的文本,如下所示:(我认为这不是一个真正