如何将两个哈希集分别添加到有序树集中



我正在用Java创建RDF语句。例如,我有两个哈希集,并希望将它们都添加到树集中。这是我的代码:

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_1"。当我循环遍历树集时,它们似乎没有排序。谁能帮我如何排序树集的元素,我可以分别添加第一个哈希集,然后添加第二个哈希集。

TreeSet将按照您放入的元素排序,而不是您放入它们的顺序。如果您不需要哈希功能,或者 LinkedHashSet(在迭代时保持插入顺序),那么一个简单的List可能就足够

Set 接口的哈希表和链表实现,使用 可预测的迭代顺序。此实现与哈希集不同 因为它维护一个双向链表,贯穿其所有 条目。此链表定义了迭代顺序,即 元素插入集合的顺序(插入顺序)。 请注意,如果重新插入元素,则广告顺序不会受到影响 进入集合。(如果 s.add(e) 是 当 s.contains(e) 在紧接在 调用。