我使用ArrayList
和Stax解析器从XML文件中提取数据。
这是每行在我的XML文件中查找的方式(每行包含不同的数据):
<row>
<millis>1000</millis>
<stamp> 1273010254</stamp>
<datetime> 2010/5/4 21:57:34</datetime>
<light> 333</light>
<temp> 78.32</temp>
<vcc> 3.54</vcc>
</row>
以下是我正在使用的ArrayList
:
public List<Measurement> readMeasurements(String xmlFile) {
List<Measurement> measurements = new ArrayList<Measurement>();
Measurement measurement = null;
以下是Stax Parser类的代码:
if (xmlEvent.isStartElement()){
StartElement startElement = xmlEvent.asStartElement();
if(startElement.getName().getLocalPart().equals("row")){
measurement = new Measurement();
}
else if(startElement.getName().getLocalPart().equals("millis")){
xmlEvent = xmlEventReader.nextEvent();
measurement.setMillis(xmlEvent.asCharacters().getData());
依旧......
编程还是新的,所以我的问题是:如何从我的ArrayList
计算(找到平均值)“轻”或“毫米”元素并将其显示在文本框中。不需要在文本框中显示,但对我来说会更容易,因为我将使用JFreeChart
从文本框中显示数据。
我做了一些研究,并且我读到IndexOf可能会有所帮助,因为我在我的代码中使用相同,但我不知道如何操纵我ArrayList
的特定元素。
答案 0 :(得分:1)
由于List<E>
实现了Iterable<T>
,您可以使用for-each循环来迭代从解析中获得的List<Measurement>
并计算average。
int sum = 0;
for (Measurement m : measurements) {
sum += m.getSomeValue();
}
// find average