【发布时间】:2014-12-10 16:48:58
【问题描述】:
我正在尝试编写一个 Java 程序来加载数据(从制表符分隔的 DAT 文件)并确定按国家和信用等级分组的欧元 (EUR) 平均金额。
我有 2 个问题,
- 将数据拆分为数组后加载到数据结构中的最佳方法是什么?
- 如何在 Java 中提供分组功能
更新:我已经进行了第一次尝试,这就是实现的样子。感觉还有改进的余地。
/**
* @param rows - Each row as a bean
* This method will group objects together based on Country/City and Credit Rating
*/
static void groupObjectsTogether(List<CompanyData> rows) {
Map<String, List<CompanyData>> map = new HashMap<String, List<CompanyData>>();
for(CompanyData companyData : rows){
String key;
if(companyData.getCountry().trim().equalsIgnoreCase("") || companyData.getCountry() == null){
key = companyData.getCity()+":"+companyData.getCreditRating(); //use city+creditRating as key
}else{
key = companyData.getCountry()+":"+companyData.getCreditRating(); //use country+creditRating as key
}
if(map.get(key) == null){
map.put(key, new ArrayList<CompanyData>());
}
map.get(key).add(companyData);
}
processGroupedRowsAndPrint(map);
}
【问题讨论】:
-
您可以使用数据库(如 HSQL)还是必须全部是 Java?
-
你的数据结构是什么样的?你有包含单元格的一维数组还是包含行和单元格的二维数组?
-
我不能使用数据库,需要让我遵循最佳编码实践。例如。我需要使用 BigDecimal 来实现货币精度。
标签: java string collections