Java:在链接列表中选择多个元素

时间:2015-01-21 08:46:16

标签: java list linked-list listiterator

我有一个包含3个字符串和一个double的类的链接列表。我想收集列表中每个double的总值。例如

 LinkedList<Person> L = new LinkedList<Person>();
 Person p1 = new Person("Fee","Foo","Bar", 1.2);
 Person p2 = new Person("Fi","Fi","Fo", 2.5);
 L.add(p1);
 L.add(p2);

我想找到并加起来1.2和2.5。我假设我应该使用ListIterator,但是如何告诉它将每个找到的double值添加到总数中?

3 个答案:

答案 0 :(得分:2)

只需对人使用for循环:

double sum = 0;
for(Person p : L)
    sum += p.getDouble();
System.out.print(sum);

答案 1 :(得分:2)

你有几个选项来迭代它

A)按要求使用迭代器

Person person = new Person();
ListIterator<Person> listIterator = L.listIterator();

while (listIterator.hasNext()) {
      person = listIterator.next();
      double value = person.getDoubleAttribute();
}

B)按照其他答案中的建议使用for-each循环:

for(Person person : L){
    double value = person.getDoubleAttribute();
}

PS:非常不建议Java

启动UPPERCASE变量或属性

答案 2 :(得分:1)

您可以遍历列表,获取每个Person的double属性并对它们求和,或者您可以使用Java 8 Streams:

double sum = L.stream().mapToDouble(Person::getDoubleProperty).sum();

getDoubleProperty代表Person类中返回double值的方法名称。