java - 比较 Java 中不同类型的 vector

标签 java arrays vector

我有两个像这样初始化的 Java vector :

Integer intArr[] = {100, 200, 300};
Double doubleArr[] = {100.0, 200.0, 300.0};

Vector<Integer> vInt = new Vector<Integer>(Arrays.asList(intArr));
Vector<Double> vDouble = new Vector<Double>(Arrays.asList(doubleArr));

我做的比较是这样的

boolean equal = vInt.equals(vDouble);  //equal = false

考虑到尽管类型不同,但 vector 具有相同的值,如何比较两个 vector 并得到 true 结果?

TIA,

最佳答案

自己比较一下。请注意,这可能会出现转换错误,例如在大约 253 之后,double 无法再表示奇数。因此,我不建议将 longdouble 进行比较。

public static boolean numericEquals(
    Collection<? extends Number> c1,
    Collection<? extends Number> c2
) {
    if(c1.size() != c2.size())
        return false;
    if(c1.isEmpty())
        return true;

    Iterator<? extends Number> it1 = c1.iterator();
    Iterator<? extends Number> it2 = c2.iterator();

    while(it1.hasNext()) {
        if(it1.next().doubleValue() != it2.next().doubleValue())
            return false;
    }

    return true;
}

关于java - 比较 Java 中不同类型的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26644502/

相关文章:

r - 重叠元素的数量

c++ - 如何使用 map vector

java - 如何模拟并行运行的线程之间的竞争?

java - 弹出 ListView 出现在另一个 ListView 的 ItemClickListener 上

java:使用 final static int = 1 是否比仅使用普通 1 更好?

javascript - 如何更改控制台上显示的对象名称?

java - 由于自签名或过时版本的安全异常,JDK 7u45 应用程序被阻止

javascript - 如何迭代这些参数来过滤数组?

迷惑C开头

python - 在python中使用 "using std::vector"时SWIG参数错误