Java:从链表中取出多个元素
Java: Pick out multiple elements in Linked list
我有一个 类 的链表,其中包含 3 个字符串和一个双精度字符串。我想收集列表中每个 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,但我如何告诉它将找到的每个双精度值添加到总数中?
您可以遍历列表,获取每个人的双倍 属性 并对它们求和,或者您可以使用 Java 8 Streams :
double sum = L.stream().mapToDouble(Person::getDoubleProperty).sum();
其中getDoubleProperty
代表Person
中的方法名class返回double值
只需对人员使用 for 循环:
double sum = 0;
for(Person p : L)
sum += p.getDouble();
System.out.print(sum);
你有几个选项可以迭代它
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
变量或属性
我有一个 类 的链表,其中包含 3 个字符串和一个双精度字符串。我想收集列表中每个 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,但我如何告诉它将找到的每个双精度值添加到总数中?
您可以遍历列表,获取每个人的双倍 属性 并对它们求和,或者您可以使用 Java 8 Streams :
double sum = L.stream().mapToDouble(Person::getDoubleProperty).sum();
其中getDoubleProperty
代表Person
中的方法名class返回double值
只需对人员使用 for 循环:
double sum = 0;
for(Person p : L)
sum += p.getDouble();
System.out.print(sum);
你有几个选项可以迭代它
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
变量或属性