我正在尝试将数据(特别是浮动)添加到我使用achartengine创建的条形图中。我创建了一个HashMap来保存键/值,但是我无法访问Integer的实际值(即Integer.valueOf)。见下文:
private XYMultipleSeriesDataset getBarDemoDataset() {
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
HashMap<String, Integer> myMap = AppStatus.mDayMap;
Iterator it = myMap.entrySet().iterator();
for (int i = 0; i < 1; i++) {
CategorySeries series = new CategorySeries("Demo series " + (i + 1));
while(it.hasNext()){
Map.Entry pairs = (Map.Entry)it.next();
// I should be able to code pairs.getValue().valueOf() but I get an error - the value seems to be a string below.
series.add((Double)pairs.getValue());
}
dataset.addSeries(series.toXYSeries());
}
return dataset;
}
答案 0 :(得分:1)
解决编译问题
出错我假设你的意思是试图将一个Integer强制转换为Double所产生的编译错误...数字之间的这种类型转换只能自动地与原始类型一起使用。
更改
series.add((Double)pairs.getValue());
到
series.add(new Double(pairs.getValue()));
解决了编译问题。
关于使用valueOf()
valueOf()
主要用于将String值转换为数字类型。表单的重载版本:
Double.valueOf(double d)
是自动装箱前几天的保留。由于您的数据(Map条目的值侧)已经是数字,因此在此上下文中无需使用valueOf()
。
答案 1 :(得分:0)
Integer i = 42;
double d = i.doubleValue();
所以:
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
series.add(entry.getValue().doubleValue());
}
虽然我认为应该订购系列图表,但在迭代HashMap
时不会出现这种情况。