Arrayist'te Fruit
nesnesi var ve ben FruitName'i çoğul adına değiştirmek istiyorum. örneği bakınız:java 8 akışlarını kullanarak listedeki nesnelerin özellik değerini değiştirin
@Data
@AllArgsConstructor
@ToString
class Fruit {
long id;
String name;
String country;
}
List<Fruit> fruits = Lists.newArrayList();
fruits.add(new Fruit(1L, "Apple", "India"));
fruits.add(new Fruit(2L, "Pineapple", "India"));
fruits.add(new Fruit(3L, "Kiwi", "New Zealand"));
Comparator<Option> byNameComparator = (e1, e2) -> e1.getName().compareToIgnoreCase(e2.getName());
fruits = fruits.stream().filter(fruit -> "India".equals(fruit.getCountry()))
.sorted(byNameComparator).collect(Collectors.toList());
List<Fruit> fruitsWithPluralNames = Lists.newArrayList();
for (Fruit fruit : fruits) {
fruit.setName(fruit.getName() + "s");
fruitsWithPluralNames.add(fruit);
}
System.out.println(fruitsWithPluralNames);
// which prints [Fruit(id=1, name=Apples, country=India), Fruit(id=2, name=Pineapples, country=India), Fruit(id=3, name=Kiwis, country=New Zealand)]
biz java8 akışları kullanarak aynı davranışı elde etmek için herhangi bir yolu var mı?
yeni liste? Bu liste orijinal listeyle aynıdır. Kalan görev için bir akışa ihtiyacınız yoktur: "fruits.forEach (fruit -> fruit.setName (fruit.getName() +" s ")). Bu arada, Lists.newArrayList() ',' stream() 'gerekliliğine 'yeni ArrayList <>()' – Holger