有没有简单快捷的方法将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()等来做。我在问是否有更快的方法。
编辑:我也希望排除重复的对象。
答案 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
。