首页 > 解决方案 > 如何在java中连接两个向量而不重叠部分

问题描述

我想要一种方法来删除相同类型的两个向量的重叠部分,然后连接并返回。

public static Vector<?> concatenateVector(Vector<?> baseVector, Vector<?> additionVector) {
    if (baseVector.getClass().equals(additionVector.getClass())) {
        additionVector.removeAll(baseVector);
        baseVector.addAll((Collection<?>) additionVector);
        return baseVector;
    } else
        return null;

}

但发生错误:

The method addAll(Collection<? extends capture#3-of ?>) in the type Vector<capture#3-of ?>  
is not applicable for the arguments (Vector<capture#4-of ?>)

从 切换VectorCollection,仍然有同样的问题。

也许还有另一种好方法?

标签: javavector

解决方案


一种方法是从通配符转换为参数化类型。

public static <T> Vector<T> concatenateVector(Vector<T> baseVector, Vector<T> additionVector) {
    if (baseVector.getClass().equals(additionVector.getClass())) {
      additionVector.removeAll(baseVector);
      baseVector.addAll(additionVector);
      return baseVector;
    } else
      return null;

  }

推荐阅读