【发布时间】:2017-04-03 16:30:09
【问题描述】:
我正在读取一个包含 Hills 数据的 CSV 文件。我可以从文件中读取数据,并具有与 6 个字段相关的列标题。目前我的输出打印如下:
### County:Argyll and Bute
[48,Deinn a'Choin,Argyll and Bute,768.2,56.281081,-4.659943, 49,Feinn a'Choin,Argyll and Bute,768.5,56.281043,-4.659924, 50,Zeinn a'Choin,Argyll and Bute,768.7,56.281034,-4.659981]
### County:Stirling
[19,Beinn Each,Stirling,813.0,56.313957,-4.262199, 11,Creag Gharbh,Stirling,637.4,56.46677,-4.221506, 7,Meall Buidhe,Stirling,719.0,56.419004,-4.308645]
### County:Aberdeen
[19,Beinn Each,Aberdeen,813.0,56.313957,-4.262199, 11,Creag Gharbh,Aberdeen,637.4,56.46677,-4.221506, 7,Meall Buidhe,Aberdeen,719.0,56.419004,-4.308645]
但我试图让我的输出像:
### County:Argyll and Bute
NameOfHill#1 Height
NameOfHill#2 Height
NameOfHill#3 Height
### County:Stirling
NameOfHill#1 Height
NameOfHill#2 Height
NameOfHill#3 Height
### County:Aberdeen
NameOfHill#1 Height
NameOfHill#2 Height
NameOfHill#3 Height
所以从技术上讲,我想要实现的是,从我的 SET 中选择 3 个值,这些值实际上在地图内,并且只打印出名称和高度。
我目前的代码是:
for (int i = 0; i < 3; i++) {
System.out.println("### County:" + hillsByCounty.keySet().toArray()[i]);
System.out.println(hillsByCounty.get((hillsByCounty.keySet().toArray())[i]));
}
}
我相信我必须使用另一个 for 循环,并且以某种方式从 Set 中仅选择 3 个值并在我的最终打印语句中使用“.getName”和“.getHeight”
我想到了一些类似的东西
Set<Hill> getHills = hillsByCounty.get((hillsByCounty.keySet().toArray())[i]);
for (int j = 0 ; j < 3 ; j++){
//write to somehow code to pull the hill in pos j in this set
System.out.println(h.getName() + " " + h.getHeight());
}
}
}
但我不确定的是,如何获得这些设定值。我的 Map 值是一个集合,因为我以前的方法启动如下:
public static Map<String, Set<Hill>> hillsByCounty(List<Hill> hills) {
【问题讨论】: