我有两个像这样初始化的 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
无法再表示奇数。因此,我不建议将 long
与 double
进行比较。
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/