だから私はLinkedHashSetを持っており、値はa1、a2、、b、c1、c2と言っています
xの順序がbの順序と同じになるように、bをxに置き換えたいと思います。
1つの明白な方法は
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を使用する必要があります。