使用java的Optional遍历List还是比较方便的,废话不多说直接上代码
@Data
@AllArgsConstructor
public class User {
private int id;
private String name;
private String email;
}
@Data
@AllArgsConstructor
public class Gift {
private int code;
private String name;
}
@Data
public class SendInfo {
private String userName;
private String giftName;
private String email;
}
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
public class Main {
public static void main(String[] args) {
List<User> users = new ArrayList<>();
List<Gift> gifts = new ArrayList<>();
User u1 = new User(1, "doudou", "doudou@126.com");
User u2 = new User(2, "mingming", "mingming@126.com");
User u3 = new User(3, "huahua", "huahua@126.com");
User u4 = new User(4, "miaomiao", "miaomiao@126.com");
users.add(u1);
users.add(u2);
users.add(u3);
users.add(u4);
Gift gift1 = new Gift(1, "乐高");
Gift gift2 = new Gift(2, "福娃");
Gift gift3 = new Gift(3, "芭比娃娃");
Gift gift4 = new Gift(4, "变形金刚");
gifts.add(gift1);
gifts.add(gift2);
gifts.add(gift3);
gifts.add(gift4);
Optional.of(users).orElse(new ArrayList<>())
.stream()
.forEach(user -> {
List<SendInfo> messageList = new ArrayList<>();
Optional.of(gifts).orElse(new ArrayList<>())
.stream()
.forEach(gift -> {
SendInfo transMessage = new SendInfo();
transMessage.setUserName(user.getName());
transMessage.setGiftName(gift.getName());
transMessage.setEmail(user.getEmail());
messageList.add(transMessage);
});
sendGift(user,messageList);
});
}
public static void sendGift(User user,List<SendInfo> message){
System.out.println("向用户:"+user.getName()+"发送礼物:"+message);
}
}