Java 如何转换列表<;字符串[]>;列出<;对象>;使用modelmapper或stream().map()?
我有以下数据作为java中字符串[]的列表,是否可以使用stream().map()进行转换?这是列表的一个示例Java 如何转换列表<;字符串[]>;列出<;对象>;使用modelmapper或stream().map()?,java,java-stream,lombok,modelmapper,Java,Java Stream,Lombok,Modelmapper,我有以下数据作为java中字符串[]的列表,是否可以使用stream().map()进行转换?这是列表的一个示例 Data's type is List<String[]> data which contains the following structure: ["a","b","c","d"], ["e","f","g","e&qu
Data's type is List<String[]> data which contains the following structure:
["a","b","c","d"],
["e","f","g","e"],
["e","f","g","e"]
由于您拥有类
CustomData
的所有构造函数参数,因此可以执行以下操作
data.stream()
.map(row -> new CustomData(row[0], row[1], row[2], row[3]))
.collect(Collectors.toList());
有没有不使用索引的替代方案?因为如果有一个新参数添加到类中,我需要修改构造函数的行和类本身。(如果不可能,我会将其标记为答案)。例如,您可以在
CustomData
classpublic static CustomData from(String[]input){返回新的CustomData(input[0],输入[1],输入[2],输入[3]);}
并将此逻辑封装在此类中并在流中使用。
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CustomData(){
@Builder.Default
private String valueA="";
@Builder.Default
private String valueB="";
@Builder.Default
private String valueC="";
@Builder.Default
private String valueD="";
}
data.stream()
.map(row -> new CustomData(row[0], row[1], row[2], row[3]))
.collect(Collectors.toList());