我试图用整数填充int数组。但是,当我打印出数组时,我只是重复了25次相同的最后一个值,这不是我想要的。我想用蓝牙服务提供的不同整数来填充数组...
weightFromDevice = intent.getExtras().getInt(BluetoothService.MESSAGE_WEIGHT_DATA); //take int values from bluetooth service
int [] _weightCount = new int[25]; // Array has a length of 25
Arrays.fill(_weightCount, weightFromDevice); //Trying to fill array with the different ints
String res = Arrays.toString(_weightCount); //Array to string for printing
displayData(res); // calling method to print array
我做错了什么?
答案 0 :(得分:3)
请阅读fill()
的{{3}}:
将指定的int值分配给指定的int数组的每个元素。
您的代码获取一个 int值,然后使用一个方法将该值放入给定数组的每个插槽中。
如果您想要不同的值:
像:
int [] weightCount = new int[numElements];
for (int i = 0; i < numElements; i++) {
weightCount[i] = intent.getExtras().getInt(BluetoothService.MESSAGE_WEIGHT_DATA); //take int values from bluetooth service
}
答案 1 :(得分:1)
要向@GhostCat回答添加内容,这是填充方法的代码:
/**
* Assigns the specified int value to each element of the specified array
* of ints.
*
* @param a the array to be filled
* @param val the value to be stored in all elements of the array
*/
public static void fill(int[] a, int val) {
for (int i = 0, len = a.length; i < len; i++)
a[i] = val;
}
您使用了错误的方法