java - 如何在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 ?>)
从 切换Vector
到Collection
,仍然有同样的问题。
也许还有另一种好方法?
解决方案
一种方法是从通配符转换为参数化类型。
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;
}
推荐阅读
- flutter - 如何将 JSON 响应转换为 Dart Map
目的 ...? - java - 使用 Spring Boot JPA 从现有的 oracle db 获取数据
- typescript - React Native 组件异常:未定义不是对象(评估'_this')
- javascript - JSX 表达式必须有一个父元素。ts(2657)
- python - 使用 Raspberry OS 在 Raspberry Pi 4 上安装 TF-Agent
- javascript - 如何在反应中使用路由器在具有键值对的组件之间切换
- php - Laravel 8:如何使隐式模型绑定路由参数可选而不是抛出 404?
- node.js - 是否有任何类似于 c# 上的 Environment.TickCount 的 NodeJs 类/函数?
- javascript - 我似乎找不到错误
- laravel - 我的网站不输出 laravel 页面...我该怎么办?