哪种 Java 结构更好用?我需要良好的性能、非固定大小和易于克隆/复制

Which Java structure better to use? I need good performance, non-fixed size, and ease to clone / copy

我想要一个性能良好的数据结构,它允许从一种结构轻松 clone/copy 到另一种结构。我的流程如下所示:

纠结于选择数据结构,暂时用ArrayDeque,速度不是很快。对象的数量不固定,所以数组可能不是一个好的选择。 有什么建议吗?这是我的代码:

ArrayDeque<Obj> list1 = new ArrayDeque(),
list2 = new ArrayDeque();

// Iterate over list1 
// and add() objects into list2 

list1 = list2.clone();
list2.clear();

谢谢!

对于 1000 个对象,您不必太复杂,除非这对性能至关重要或创建 class Obj 的每个对象都是一个漫长的过程。

假设以下(非常 noddy)不可变 Obj class:

public static final class Obj {
    private String property;

    public Obj(String property) {
        this.property = property;
    }

    public String getProperty() {
        return property;
    }

    public Obj modify(String newProperty) {
        return new Obj(property + newProperty);
    }
}

对于 100k 个元素,以下代码执行得非常快:

public static final int NUM_ELEMENTS = 100_000;

public static void main(String[] args) {
    //init
    ArrayDeque<Obj> source = new ArrayDeque<>(NUM_ELEMENTS);
    ArrayDeque<Obj> destination = new ArrayDeque<>(NUM_ELEMENTS);

    for(int i = 0; i < NUM_ELEMENTS; i++) {
        source.add(new Obj("" + i));
    }

    //modify
    source.stream()
            .map(obj -> obj.modify(" V2"))
            .forEach(obj -> destination.add(obj));

    source.clear();

    //print
    destination.stream()
            .forEach(obj -> System.out.println(obj.getProperty()));
}