首页 \ 问答 \ 在linkedHashSet中有序插入,任何高效的方式?(Ordered insertion in linkedHashSet, any performant way ?)

在linkedHashSet中有序插入,任何高效的方式?(Ordered insertion in linkedHashSet, any performant way ?)

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


So I have a LinkedHashSet , with values say a1, a2, , b, c1, c2

I want to replace, b with x , such that the order of x should be same as order of b.

One obvious way would be

 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;
    }

not only this is O(n) i also feel this is not the fastest way. Any better solution ? NOTE : I HAVE TO use linkedHashMap.


原文:https://stackoverflow.com/questions/12826916
更新时间:2023-11-02 07:11

最满意答案

如果我正确理解了这个问题,您希望能够将“标题”和“Hello”作为一个项目拖动吗?

如果是这样,只需将每个项目包装在div中:

  <div>
    <dt class="ui-state-default">Title</dt>
    <dd>Hello</dd>
  </div>

小提琴: http//jsfiddle.net/5p2ynsLx/2/


If I understand the question correctly, you want to be able to drag the "Title" and "Hello" as one item?

If so just wrap each item in a div:

  <div>
    <dt class="ui-state-default">Title</dt>
    <dd>Hello</dd>
  </div>

Fiddle: http://jsfiddle.net/5p2ynsLx/2/

相关问答

更多