用Java连接向量

时间:2013-02-06 19:53:44

标签: java vector merge

有没有简单快捷的方法将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()等来做。我在问是否有更快的方法。

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

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分: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