所以我有一个 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。