我有一个包含规则和规则的CSV文件。 CSV文件如下所示:Java如何从ArrayList中删除重复项
CSV FILE:
#RULENAME, RULEVERSION
RULE,01-02-01
RULE,01-02-02
RULE,01-02-34
OTHER_RULE,01-02-04
THIRDRULE, 01-02-04
THIRDRULE, 01-02-04
如您所见,1个规则可以有1个或多个规则版本。我需要做的是读取这个CSV文件,并将它们放入一个数组中。我目前做的是与下面的脚本:
private static List<String[]> getRulesFromFile() {
String csvFile = "rulesets.csv";
BufferedReader br = null;
String line = "";
String delimiter = ",";
List<String[]> input = new ArrayList<String[]>();
try {
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
if (!line.startsWith("#")) {
String[] rulesetEntry = line.split(delimiter);
input.add(rulesetEntry);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return input;
}
但我需要,使其保存在下列格式的信息,以适应该脚本:
ARRAY (
=> RULE => 01-02-01, 01-02-02, 01-02-04
=> OTHER_RULE => 01-02-34
=> THIRDRULE => 01-02-01, 01-02-02
)
什么是做到这一点的最好办法?多维数组?我如何确保它不会多次保存规则名称?
使用'(哈希)地图<字符串,列表>' –
我会强烈建议您花点时间和调查Java集合API。请参阅以下文章以供参考。这可能会让你在正确的方向:http://stackoverflow.com/questions/21974361/what-java-collection-should-i-use –