显然,我不明白什么。我有一个原始的数组 int
s、 我需要把它转换成我自己类型的数组。这是我试过的。
public class StupidInt {
@JsonProperty("ID")
private int id;
public StupidInt(int id) { this.id = id; }
public int getId() { return this.id; }
}
public static void main(String []args){
int[] ints = {1,2,4,67};
StupidInt[] myInts = IntStream.of(ints).map(StupidInt::new).collect(Collectors.toList());
}
正如您所料,myints行有一个问题,这个问题是“无法将stupidint转换为int”。但我不确定要使用什么map或foreach或任何中间和终端方法组合来将int数组转换为我的对象数组。正确的转换方法是什么?
2条答案
按热度按时间xuo3flqw1#
你需要使用
mapToObj
创建新的对象流和toArray
而不是collect
以数组形式获得结果。ws51t4hk2#
@hev1给出的答案很简单,是一个终端方法的最佳答案。
如果您需要不同的解决方案,我在这里提供两种不同的选择。第一种是中间方法,用于创建基元数组;第二种方法是一种完全不同的解决问题的方法,它不创建基元数组,而是创建一个类型对象的“列表”,该列表反映基元类型,也可以处理任何类型或对象:
解决方案1:
解决方案2:
在这种情况下,要添加一个新的int,您需要使用add方法并获得一个int,您需要使用get(position)方法或find方法来查看它是否存在并获得位置。
或者你可以简单地使用arraylist类,或者如果你愿意的话,我可以和你分享一个列表结构,它允许你完成你需要完成的事情,有你能想到的大多数方法,实现可比较的,可以排序的,实现iterable的,非常有效。