2016-02-02 93 views
1

使用中的addAll與同步列表我有一個List<GameElement>定義如下:在Java中

protected List<GameElement> elements = Collections.synchronizedList(new LinkedList<>()); 

並以元素的逗號分隔的列表添加到列表中,我使用的方法addElements

protected void addElements(GameElement... elements){ 
    this.elements.addAll(new LinkedList<GameElement>(Arrays.asList(elements))); 
} 

是否有更簡單的方法將元素添加到List<GameElement> elements

+0

什麼不乾淨呢?你想循環使用這些元素並逐一添加它們嗎? – Gavriel

+1

爲什麼你在'addAll'中爲'LinkedList'打擾? – user2357112

+1

爲什麼不只是'this.elements.addAll((Arrays.asList(elements))'? –

回答

2

您不必將列表轉換爲LinkedList。 addAll獲取Collection,List實現Collection本身。

protected void addElements(GameElement... elements){ 
    // either: 
    this.elements.addAll(Arrays.asList(elements)); 

    // or as @VGR commented: 
    Collections.addAll(this.elements, elements) 
} 
+0

由於某種原因,這是不工作上次我檢查;但它現在的作品。謝謝! –

+0

我解決你的編譯器:) – Gavriel

+0

實際上,'Collections.addAll(this.elements,elements)'是首選。 [documentation](https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#addAll-java.util.Collection-T...-)聲稱它可以提供顯着的性能優勢。 – VGR