我正在处理一个模块,我需要解析一个csv文件,从中选择一些字段并处理这些字段以保留在我的数据库中。
我正在做的是,使用OpenCSV我已将文件读入 List< String []> 。然后我在这个List上循环以映射csv数据并准备一个hashmap列表( List< Map< String,String>> )作为我的最终请求。
我们知道hashmap有性能开销,从性能角度来看,创建一个hashmap列表对我来说似乎并不合适。我读过使用java bean效率更高。所以我想知道最好的方法。
当我在请求中使用hashmap时,我能够使用下面的代码验证我的请求数据(用于空/空数据检查),这是非常通用的,没有任何硬编码方法适用于所有请求数据。
public static boolean validateDataValues(final Map<String, String> data, final List<String> keys) {
for (String key : keys) {
if (StringUtils.isBlank(data.get(key))) {// checks for both null and empty strings
return false;
}
}
return true;
}
同样使用hashmap允许我在请求中携带额外的数据,这可能不是csv的一部分。如果我在其位置使用java bean,我将不得不调用每个必填字段的getter进行验证。因此,在编码时,我应该考虑使用java bean的性能因素或使用hashmap的代码因子。
请建议可能是最好的方法。