4

有没有简单快捷的方法将 2 个 java 向量合并为 1 个?

例如,如果我有:

  Vector<Object> Va = (Vector<Object>)Return_Vector_with_Objs();
  Vector<Object> Vb = (Vector<Object>)Return_Vector_with_Objs();

  Vector<Object> Vmerge_a_b = function_that_takes_a_b_merges(Va,Vb);

是否有类似 function_that_takes_a_b_merges 的函数或合并这两个向量的简单方法?

我不想用循环和 add() 等来做。我问是否有更快的方法。

编辑:我还希望排除重复的对象。

4

2 回答 2

6

当然!

static Vector<Object> function_that_takes_a_b_merges(Vector<Object> Va, Vector<Object> Vb) {
  Vector<Object> merge = new Vector<Object>();
  merge.addAll(Va);
  merge.addAll(Vb);
  return merge;
}

从一个新的向量开始很重要,否则Va如果你调用Va.addAll().

于 2013-02-06T20:00:07.870 回答
3

你可以这样做:

Set<String> set = new HashSet<>(va);
set.addAll(vb);
Vector<String> merged = new Vector<>(set);

注意:Vector现在已经很老Collection了,它具有同步方法的开销,这会带来性能成本。ArrayList可以代替使用,并且还具有接口合同中的addAll方法。List如果您确实需要同步Collection,您可以使用Collections.synchronizedList来同步您的原始文件List

于 2013-02-06T19:56:14.467 回答