Int数组填充最后一个int

时间:2017-08-10 13:23:18

标签: java arrays int

我试图用整数填充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

我做错了什么?

2 个答案:

答案 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;
  }

您使用了错误的方法