【发布时间】:2015-11-10 03:45:46
【问题描述】:
我有一个使用休眠从数据库中获取的列表。
List<Object[]> tuples = query.list();
for(Object[] tuple : tuples) {
myObj temp = new myObj();
temp.setID(((BigInteger)tuple[1]).longValue());
temp.setPIndex((Integer)tuple[2]);
temp.setFIndex((Integer)tuple[3]);
temp.setSIndex((Integer)tuple[5]);
temp.setLat(((BigDecimal)tuple[6]));
temp.setLongt((BigDecimal)(tuple[7]));
temp.setAlt((BigDecimal)(tuple[8]));
List.add(temp);
}
其中 ID 为 Long,Pindex、FIndex、Sindex 为 Integer,Lat、Longt 和 Alt 为 Big Decimal。
另一方面,我有 csv 文件,其中包含与这些数据库对应的数据。我正在从 csv 文件中一一导入数据并将其与我的列表进行比较,但不知何故我的比较功能无法正常工作。
private boolean checkData(List<MyObject> list,MyObject1 map){
if (list.size() == 0){
return true;
}
for (int i = 0 ; i < list.size(); i++){
MyObject temp = (MyObject)list.get(i);
if (temp.getAlt().compareTo(map.getType2().getAlt())== 0 && temp.getLat().compareTo(map.getType2().getLat()) == 0 && temp.getLongt().compareTo(map.getType2().getLongt()) == 0 && Integer.valueOf(temp.getPIndex()) == Integer.valueOf(map.getType2().getPIndex())&& Integer.valueOf(temp.getSIndex()) == Integer.valueOf(map.getType2().getSIndex()) && temp.getID().compareTo(map.getCommonTypeData().getID())== 0 && Integer.valueOf(temp.getFIndex()) == Integer.valueOf(map.getType2().getFIndex())){
return false;
}
}
return true;
}
我不知道为什么它对某些条目工作正常,而对其他条目不起作用。
【问题讨论】:
标签: java hibernate csv casting compare