以有序的方式在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。
回答:
- 创建一个结构图
- 用
插入所有字符串 - 通过在当前字符串的OrderOfTheString之后添加一个小的Delta来插入新的String。
- 将地图转换为LikedHashSet
我知道它很复杂,但是当我们链接〜1000000个元素的哈希映射并且大约要插入1000个元素时,它肯定会更好。
以上是 以有序的方式在linkedHashSet中进行有序插入? 的全部内容, 来源链接: utcz.com/qa/413585.html