当前位置: 首页 > 面试题库 >

设置数组所有值的最快方法?

王佐
2023-03-14
问题内容

我有一个char [],我想将每个索引的值设置为相同的char值。
有一种很明显的方法(迭代):

  char f = '+';
  char [] c = new char [50];
  for(int i = 0; i < c.length; i++){
      c[i] = f;
  }

但是我想知道是否有一种可以利用的方法System.arraycopy或某种等效方法可以绕过迭代的需要。有没有办法做到这一点?

编辑:Arrays.java

public static void fill(char[] a, int fromIndex, int toIndex, char val) {
        rangeCheck(a.length, fromIndex, toIndex);
        for (int i = fromIndex; i < toIndex; i++)
            a[i] = val;
    }

这是完全相同的过程,这表明可能没有更好的方法可以做到这一点。
+1对所有提出建议fill的人-你们都是正确的,谢谢。


问题答案:

试试Arrays.fill(c, f):数组javadoc



 类似资料:
  • 如何将值中的所有位设置为1?使用AVX或AVX2的本质? 而我似乎在AVX中找不到一个简单的按位非运算?如果这是可用的,我可以简单地使用setzero,后面跟着一个向量NOT。

  • 问题内容: 我想知道如何在具有随机数的数组中的设置值之间打印所有数字。它还应说明有多少用户随机数高于设置值。这是一个外观的示例: 到目前为止,这是我的代码,我设法使其打印出最大的数字。 问题答案: 妳去 我所做的是添加类,而不是生成随机数。 使用可以在需要时分配更多内存的情况下分配更大的内存,以存储小于或大于499的值。 没有新的数组实现摘要: 这是对数组进行迭代并执行以下操作: 计算有500以上

  • 我想问您,除了像(大小为30个元素)这样一开始就设置数组元素数的限制之外,是否还有一种方法可以在java中设置数组元素数的限制。您能在1到10个元素之间设置限制吗? (或者类似的东西)。 我的第二个问题也许更可行的是,你能不能给元素本身设置一个限制,比如当你需要在之后对它们进行排序时,如果一个元素>=100就会给出错误。类似于:

  • 我正在寻找最快的方法,从列表中获得所有可能的对组合之间的最小绝对差。 我做了两个解决方案,但没有一个是可以接受的。 输入示例:[3,-7,0] 所有组合:(3,-7),(3,0),(-7,0) 输出最小abs差值:3 解释: 3-0=3

  • 问题内容: 这是我能想到的最好的算法。 可以使它更快吗? 此代码有一个缺陷:由于是无序集合,因此不能保证从集合中删除最低的数字。但是,它对某些输入数字有效(至少对我而言): 问题答案: 警告: 由于硬件或Python版本的差异,结果可能会有所不同。 下面是一个脚本,它比较了许多实现: ambi_sieve_plain, rwh_primes, rwh_primes1, rwh_primes2, s

  • 问题内容: 一个可以被转换为使用,但有在新的没有这样的方法(与夫特1.2引入)。仍然可以通过将Swift Set转换为NSSet并使用该方法来完成,但这并不是最佳选择。 问题答案: 您可以简单地使用给定Swift的所有元素创建一个数组 之所以有效,是因为符合协议,并且可以使用序列进行初始化。例: