如何使用 Streams 将 using 元素添加到 Collection 集?
How to add using element to a Collection Set using Streams?
目前我正在像这样向 Collection 集合添加一个元素。
Set<Rental> currentFavouriteRentals = currentUser.getFavouriteRentals();
currentFavouriteRentals.add(rental);
currentUser.setFavouriteRentals(currentFavouriteRentals);
有没有办法用不使用 Stream.concat() 的 Streams 做到这一点?
我建议你改造 objects,你在外面更新 User
的收藏夹
这应该发生在 User
class Read this OO Principle, TellDon'tAsk
class User {
private Set<Rental> favoriteRentals;
public User() {
this.favoriteRentals = new HashSet<>();
}
public Set<Rental> updateFavoriteRentals(Rental rental) {
this.favoriteRentals.add(rental);
return this.favoriteRentals;
}
}
尽管这可能不满足(或不适合)您的特定示例,但您可以使用[=21=中介绍的mapMulti向现有流添加元素] 16. 比如下面会在每一个偶数之前把99999这个数字加到流中
Random r = new Random();
int [] arr = r.ints(10,1,100).mapMulti((val, consumer)-> {
if (val%2==0) {
consumer.accept(99_999);
}
consumer.accept(val);
}).toArray();
System.out.println(Arrays.toString(arr));
打印类似
的东西
[99999, 80, 29, 95, 99999, 40, 65, 99999, 22, 23]
如果你想在每个偶数之后加上它,那么先接受这个值,然后再做偶校验测试。
目前我正在像这样向 Collection 集合添加一个元素。
Set<Rental> currentFavouriteRentals = currentUser.getFavouriteRentals();
currentFavouriteRentals.add(rental);
currentUser.setFavouriteRentals(currentFavouriteRentals);
有没有办法用不使用 Stream.concat() 的 Streams 做到这一点?
我建议你改造 objects,你在外面更新 User
的收藏夹
这应该发生在 User
class Read this OO Principle, TellDon'tAsk
class User {
private Set<Rental> favoriteRentals;
public User() {
this.favoriteRentals = new HashSet<>();
}
public Set<Rental> updateFavoriteRentals(Rental rental) {
this.favoriteRentals.add(rental);
return this.favoriteRentals;
}
}
尽管这可能不满足(或不适合)您的特定示例,但您可以使用[=21=中介绍的mapMulti向现有流添加元素] 16. 比如下面会在每一个偶数之前把99999这个数字加到流中
Random r = new Random();
int [] arr = r.ints(10,1,100).mapMulti((val, consumer)-> {
if (val%2==0) {
consumer.accept(99_999);
}
consumer.accept(val);
}).toArray();
System.out.println(Arrays.toString(arr));
打印类似
的东西[99999, 80, 29, 95, 99999, 40, 65, 99999, 22, 23]
如果你想在每个偶数之后加上它,那么先接受这个值,然后再做偶校验测试。