【发布时间】:2012-10-10 19:30:22
【问题描述】:
所以我有一个 LinkedHashSet ,其值为 a1, a2, , b, c1, c2
我想将 b 替换为 x ,这样 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。
【问题讨论】:
-
既然我们遵循'final',只是想知道为什么你认为它是混乱的?
标签: java performance data-structures linkedhashset