java从int数组创建对象数组
显然,我不明白什么。我有一个int
的基本数组,我需要将其转换为我自己类型的数组。这是我试过的
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行有一个问题,这个问题是“无法将StupDint转换为int”。但我不确定使用map或foreach或任何中间和终端方法的组合来将int数组转换为我的对象数组。进行此转换的正确方法是什么
# 1 楼答案
您需要使用
mapToObj
来创建一个新的对象流,并使用toArray
而不是collect
来获得作为数组的结果# 2 楼答案
@hev1给出的答案很简单,对于你想要实现的目标来说,这是一个终端方法的最佳答案
如果您需要不同的解决方案,我在这里提供两种不同的选择。第一种方法只是一种中间方法,用于创建基元数组;第二个选项是解决问题的一种有益的不同方法,它不创建基元数组,而是创建一个反映基元类型的类型对象的“列表”,也可以用于任何类型或对象:
解决方案1:
解决方案2:
在这种情况下,要添加一个新的int,可以使用add方法,要获得一个int,可以使用get(position)方法或find方法来查看它是否存在并获得位置
或者你可以简单地使用ArrayList类,或者如果你愿意的话,我可以和你分享一个列表结构,它允许你完成你需要完成的事情,有你能想到的大多数方法,实现可比的,可以排序的,实现可比的,非常有效的