private void enrichWithFieldList(String desc, String value, List<Data> dataList, List<Field> fieldList) {
int index = 1;
for(Data data : dataList){
if(!"english".equals(data.getCode())){
createFieldList(desc+index, data.getCode(), fieldList);
createFieldList(value+index++, data.getValue(), fieldList);
}
}
}
private void createFieldList(String fieldName, String fieldValue, List<Field> fieldList) {
Field customField = new Field();
customField.setName(fieldName);
customField.setValue(fieldValue);
fieldList.add(customField);
}
谁能告诉我如何使用 Java8 流重写上面的代码?
最佳答案
据我所知,您正在尝试根据您的数据列表提出一个新的字段列表。如果是这样,最好直接从流中创建它,而不是将其添加到传递给您的方法的列表中。
类似下面的内容:
private List<Field> makeEnrichedFieldList(String desc, String value, List<Data> dataList) {
return IntStream.range(0, dataList.size())
.filter(i -> !dataList.get(i).getCode().equals("english"))
.boxed ()
.flatMap(i -> Stream.of(new Field(desc + i + 1, dataList.get(i).getCode()),
new Field(value + i + 1, dataList.get(i).getValue()))
.collect(Collectors.toList());
}
关于java - 如何在 java8 中使用流重写以下代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34388677/