Java Lambda表达式和嵌套数组

Java Lambda表达式和嵌套数组,java,lambda,java-8,java-stream,Java,Lambda,Java 8,Java Stream,我正试图想出一些很好的lambda表达式来从“customers”ArrayList构建“desiredResult”。我用一种旧的丑陋的方式实现了“for”循环。我知道应该有很好的单行程序,但我想不出任何方法-嵌套数组进入我的方式 Iterable<List<?>> params; Customer customer1 = new Customer("John", "Nowhere"); Customer customer2 = new Customer("Alma",

我正试图想出一些很好的lambda表达式来从“customers”ArrayList构建“desiredResult”。我用一种旧的丑陋的方式实现了“for”循环。我知道应该有很好的单行程序,但我想不出任何方法-嵌套数组进入我的方式

Iterable<List<?>> params;
Customer customer1 = new Customer("John", "Nowhere");
Customer customer2 = new Customer("Alma", "Somewhere");
Customer customer3 = new Customer("Nemo", "Here");
Collection<Customer> customers = new ArrayList<>();
customers.add(customer1);
customers.add(customer2);
customers.add(customer3);

Collection<List<?>> desiredResult = new ArrayList<>();
for (Customer customer : customers) {
    List<Object> list = new ArrayList<>();
    list.add(customer.getName());
    list.add(customer.getAddress());
    list.add("VIP");
    desiredResult.add(list);
}
params = desiredResult;
Iterable>desiredResult=newArrayList();
用于(客户:客户){
列表=新的ArrayList();
list.add(customer.getName());
list.add(customer.getAddress());
列表。添加(“VIP”);
desiredResult.add(列表);
}
参数=期望的结果;
这里有一个建议:

Collection<List<?>> desiredResult = customers.stream()
         .map(MyClass::customerToList)
         .collect(toList());

Collection我只使用
Arrays.asList
来创建内部列表,这使问题变得更简单:

Collection<List<?>> desiredResult = 
    customers.stream()
             .map(c -> Arrays.asList(c.getName(), c.getAddress(), "VIP"))
             .collect(Collectors.toList());

CollectionEnd结果必须为Iterable@PutinasPiliponis如我所示-我的代码没有使用
ArrayList
。已理解:)问题已结束。谢谢你的回答!
Collection<List<?>> desiredResult = 
    customers.stream()
             .map(c -> Arrays.asList(c.getName(), c.getAddress(), "VIP"))
             .collect(Collectors.toList());