【问题标题】:Returning values by repeating number n times of a value in array [closed]通过在数组中重复n次值来返回值[关闭]
【发布时间】:2019-01-22 01:46:48
【问题描述】:

它应该打印:

arrayBuilder(3, 7) 应该返回数组 [7, 7, 7]。

到目前为止我有:

public static int[] arrayBuilder(int len, int val) {
    int[] A = numbers();
    System.out.println(Arrays.toString(A));
    int val = 0;
    for (int i=0; i<=len; i++) {
        val.append(len);
    }
    return val.toString();
}

【问题讨论】:

标签: java arrays


【解决方案1】:

只要有一个指定长度的 int 数组,并在循环中始终添加该值

public static int[] arrayBuilder(int len, int val) {
int[] A = new int[len];

for (int i=0; i<len; i++) {
    A[i]=val
  }
  return A;
}

案例2:正如@dave在评论中提到的,你可以使用Arrays.fill(),第一个参数是数组,第二个参数是需要填充数组的值

public static void fill(int[] a, int val)

public static int[] arrayBuilder(int len, int val) {
int[] A = new int[len];

Arrays.fill(A,val);
return A;
}

我知道你处于学习阶段,但提供更多信息以便你掌握更多

【讨论】:

  • 非常清晰和正确。 for 循环可以替换为 Arrays.fill(A, val)
  • 更新了@dave,我相信他正处于学习阶段
  • 我同意,您的第一个解决方案适合初学者。我想我会添加一个库调用,以防其他人出现。
【解决方案2】:

这也应该做的事情(Java8+):

IntStream.range(0, len).map(i -> val).collect(Collectors.toList())

【讨论】:

  • 如果 OP 不懂基本的数组实例化,我想他们也不会懂。
  • 也许这将是 OP 学习流 API 的动力 :)
  • 是在让他们知道原语int 没有附加方法之前还是之后?
  • 这也返回 List 而不是 Array
  • 对于数组可以使用这个:IntStream.range(0, len).map(i -&gt; val).toArray();
猜你喜欢
  • 1970-01-01
  • 2015-07-22
  • 1970-01-01
  • 1970-01-01
  • 2021-01-29
  • 1970-01-01
  • 2019-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多