我有一个问题,从int转换为int []。我试图修改编码但仍然有错误。我想将方法getRandomNumberInRange更改为int [],因为我需要与[hostType]结合,[hostType]是数组形式。
// this method is to convert from int to int[]
static Integer[] toObject(int[] intArray) {
Integer[] result = new Integer[intArray.length];
for (int i = 0; i < intArray.length; i++) {
result[i] = Integer.valueOf(intArray[i]);
}
return result;
}
// this method to generate random number
public static int getRandomNumberInRange(int min, int max) {
if (min >= max) {
throw new IllegalArgumentException("max must be greater than min");
}
Random r = new Random();
return r.nextInt((max - min) + 1) + min;
}
//this method is to implement the function getRandomNumberInRange and need to be in array form
public static List<PowerHost> createHostList(int hostsNumber) {
List<PowerHost> hostList = new ArrayList<PowerHost>();
for (int i = 0; i < hostsNumber; i++) {
int hostType = i % Constants.HOST_TYPES;
// int mips2[]=(int) getRandomNumberInRange(100, 1000);
List<Pe> peList = new ArrayList<Pe>();
for (int j = 0; j < Constants.HOST_PES[hostType]; j++) {
int[] obj = new int[hostType] ;
Integer[] newObj = toObject(obj);
peList.add(new Pe(j, new PeProvisionerSimple(getRandomNumberInRange(100, 1000)[newObj])));
}
有一些问题是错的。首先,在最后一个代码段中,您缺少两个'}。其次,getRandomNumberInRange(int min, int max)
返回一个int,它不是一个数组。这意味着你不会做getRandomNumberInRange(100, 1000)[newObj]
,因为这就像做107[4]
。 107不是一个数组,所以不起作用。另外,newObj是一个数组,所以即使getRandomNumberInRange
返回一个数组,newObj也不能用作索引来获取数组中的int。这是因为索引(数组[here]中的内容)必须是int。