如何将数组的所有元素初始化为java中的任何特定值

时间:2012-04-09 19:48:11

标签: java arrays

C/C++我们有memset()函数可以满足我的愿望,但在Java我如何将所有元素初始化为特定值?每当我们写int[] array=new int[10];时,这只是初始化一个大小为10的数组,所有元素都等于零。我只想为我的一个数组更改这个初始化整数。即我想初始化一个所有元素都等于-1的数组。否则,我必须在初始化之后放置for循环,范围从索引0到索引size-1,在该循环内,我将元素分配给-1。以下是更多理解的代码 -

    int[] array = new int[10];
    for (int i = 0; i < size; i++) {
        array[i] = -1;
    }

我是否正确?还有其他方法吗?

10 个答案:

答案 0 :(得分:194)

如果是原始类型,您可以使用Arrays.fill()

Arrays.fill(array, -1);

[顺便提一下,C或C ++中的memset只对char的数组有任何实际用途。]

答案 1 :(得分:28)

还有

int[] array = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1};

答案 2 :(得分:3)

Java 8流也可以:

int[] a = IntStream.generate(() -> value).limit(count).toArray();

然而,可能不是最有效的工作方式。

答案 3 :(得分:2)

如果它很短,你可以这样做:

int[] array = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};

但这不仅仅是一些。

更简单的是for循环:

  int[] myArray = new int[10];
  for (int i = 0; i < array.length; i++)
       myArray[i] = -1;

编辑:我也喜欢其他人提到的Arrays.fill()选项。

答案 4 :(得分:1)

答案 5 :(得分:1)

您是否尝试过Arrays.fill function

答案 6 :(得分:0)

您可以使用Arrays.fill(array, -1)

答案 7 :(得分:0)

显然你可以使用Arrays.fill(),你完成它的方式也可以。

答案 8 :(得分:0)

使用Java 8,您只需使用ncopies类的Collections

Object[] arrays = Collections.nCopies(size, object).stream().toArray();

您的情况将是:

Integer[] arrays = Collections.nCopies(10, Integer.valueOf(1)).stream().toArray(Integer[]::new);
.

Here是您类似情况的详细解答。

答案 9 :(得分:0)

对于列表,您可以使用

Collections.fill(arrayList, "-")