Java:在链表中挑选多个元素



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

 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,但是我如何告诉它将找到的每个双精度值添加到总数中?

你有几个选项来迭代它

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:强烈建议不要通过UPPERCASE开始Java变量或属性

只需在人员上使用 for 循环:

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

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

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

其中getDoubleProperty代表返回双精度值的 Person 类中方法的名称。

相关内容

  • 没有找到相关文章

最新更新