我使用 Jsoup 库解析一些 html。它有 Elements 类,它扩展了 ArrayList 并且可以包含 DOM 元素的集合。我通过 css 选择器获得 5 个不同的元素列表,如下所示:
Elements names = doc.select(".views-field-person-name");
Elements diplomas = doc.select(".views-field-markdiploma");
Elements special = doc.select(".views-field-mark1");
Elements english = doc.select(".views-field-mark2");
Elements full = doc.select(".views-field-mark");
然后我通过 Student
的对象(有 5 个 String
字段)填充集合 students
,如下所示:
for (int j = 1; j <= stateOwnedCount; j++) {
students.add(new Student(
names.get(j).text(),
diplomas.get(j).text(),
special.get(j).text(),
english.get(j).text(),
full.get(j).text()));
}
是否可以使用 Java 8 中的 Stream API 重写此循环?没有想法。
最佳答案
您可以生成一个整数流(在您的情况下是索引),然后将其转换为学生对象流。
List<Student> students = IntStream
.rangeClosed(0,stateOwnedCount)
.mapToObj(j -> new Student(
names.get(j).text(),
diplomas.get(j).text(),
special.get(j).text(),
english.get(j).text(),
full.get(j).text()))
.collect(Collectors.toList());
关于java-8 - 如何使用Java 8中的流API通过同一类的不同对象填充数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51686231/