java - 如何将两个HashSet分别添加到有序TreeSet中

标签 java hashset treeset

我正在用 Java 创建 RDF 语句。我有两个 HashSet,并且想将它们都添加到 TreeSet 中。这是我的代码:

Collection<Statement> model = new HashSet<Statement>();
Collection<Statement> model_1 = new HashSet<Statement>();
Collection<Statement> treeSet = new TreeSet<Statement>();

将一些语句存储到这两个哈希集中后,我将它们都添加到 TreeSet 中:这是代码:

treeSet.addAll(model);
treeSet.addAll(model_1);
for (Statement _state : treeSet)
     System.out.println(_state);

我认为第一个哈希集“model”将被添加到TreeSet中,然后分别添加第二个哈希集“model_1”。当我循环遍历 TreeSet 时,它们似乎没有排序。任何人都可以帮助我如何对 TreeSet 的元素进行排序,以便我可以分别添加第一个 HashSet 和第二个 HashSet 。

最佳答案

TreeSet 将根据您放入的元素进行排序,而不是按照您放入元素的顺序。如果您不需要,一个简单的 List 可能就足够了散列能力,或者可能是 LinkedHashSet (在迭代时保持插入顺序)

Hash table and linked list implementation of the Set interface, with predictable iteration order. This implementation differs from HashSet in that it maintains a doubly-linked list running through all of its entries. This linked list defines the iteration ordering, which is the order in which elements were inserted into the set (insertion-order). Note that insertion order is not affected if an element is re-inserted into the set. (An element e is reinserted into a set s if s.add(e) is invoked when s.contains(e) would return true immediately prior to the invocation.)

关于java - 如何将两个HashSet分别添加到有序TreeSet中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19836349/

相关文章:

java - 创建一个将读取 txt 文件的文件

java - 列表到哈希集

java - 无论顺序如何,Hashset 上的 .equals 是否返回 true?

c# - 从HashSet中获取原始值

java - 删除一个对象并在 TreeSet 中添加另一个对象

java - 为什么我们可以为 TreeSet 提供 Comparator,但不能为 HashSet 提供类似 Hasher 的东西?

java - 在TreeSet中查找相等的元素

java - 如何获得真正的 JPanel 大小?

java - 如何处理 SOAP 调用中的方法及其参数

java - 在同一行上向后打印