以有序的方式在linkedHashSet中进行有序插入?

所以我有一个LinkedHashSet,其值说a1,a2,,b,c1,c2

我想用x替换b,这样x的顺序应该与b的顺序相同。

一种明显的方式是

 private LinkedHashSet<String> orderedSubstitution(final Set<String> originalOrderedSet, final String oldItem,

final String newItem) {

final LinkedHashSet<String> newOrderedSet = new LinkedHashSet<String>();

// Things we do to maintain order in a linkedHashSet

for (final String stringItem : originalOrderedSet) {

if (stringItem.equals(oldItem)) {

newOrderedSet.add(newItem);

} else {

newOrderedSet.add(stringItem);

}

}

return newOrderedSet;

}

不仅这是O(n),我还 觉得 这不是最快的方法。有更好的解决方案吗?注意:我必须使用linkedHashMap。

回答:

  1. 创建一个结构图
  2. 插入所有字符串
  3. 通过在当前字符串的OrderOfTheString之后添加一个小的Delta来插入新的String。
  4. 将地图转换为LikedHashSet

我知道它很复杂,但是当我们链接〜1000000个元素的哈希映射并且大约要插入1000个元素时,它肯定会更好。

以上是 以有序的方式在linkedHashSet中进行有序插入? 的全部内容, 来源链接: utcz.com/qa/413585.html

回到顶部