用于保持列表唯一且插入顺序完整的数据结构

Mar*_*man 5 java collections data-structures

我需要在列表中添加对象(使用List语义),同时保持列表中的所有对象都是唯一的.我认为LinkedHashSet会这样做,但"重新插入"条款打破了这个:

LinkedHashSet<String>list = new LinkedHashSet<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("a");
list.add("a");
System.out.println (list);
Run Code Online (Sandbox Code Playgroud)

以上输出是:[a, b, c],不是[b, c, a]我想要的.

Java中是否有这样的数据结构来处理这种情况?

Evg*_*eev 8

尝试

    Set<String> set = Collections.newSetFromMap(new LinkedHashMap<String, Boolean>(16, 0.75f, true));
    set.add("a");
    set.add("b");
    set.add("c");
    set.add("a");
    set.add("a");
    System.out.println(set);
Run Code Online (Sandbox Code Playgroud)

产量

[b, c, a]
Run Code Online (Sandbox Code Playgroud)