相关疑难解决方法(0)

Java:Python的范围(int,int)的等价物?

Java是否具有Python range(int, int)方法的等价物?

python java

94
推荐指数
7
解决办法
7万
查看次数

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

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

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

但是我想知道是否有一种方法可以利用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;
    }
Run Code Online (Sandbox Code Playgroud)

这是完全相同的过程,这表明可能没有更好的方法来做到这一点. 无论如何,对所有
建议的人都要+1 fill- 你们都是正确的,谢谢你们.

java arrays

63
推荐指数
6
解决办法
15万
查看次数

使用数字范围填充数组

是否有任何语法/包允许快速填充具有数字范围的java数组,例如perl?

例如

int[] arr = new int[1000];
arr=(1..500,301..400,1001..1400); // returns [1,2,3,4,...,500,301,302,...,400,1001,1002,...1400]
Run Code Online (Sandbox Code Playgroud)

此外,这里有一个包,允许在如上所述的数字列表中获取第n个数字,而不实际创建数组(可能是巨大的)?

例如

BunchOfRangesType bort = new BunchOfRangesType("1..500","301..400","1001..1400");
bort.get(0); // return 1
bort.get(500); // return 301
bort.get(501); // return 302
Run Code Online (Sandbox Code Playgroud)

实现起来并不困难,但我想这可能很常见,也许它已经完成了.

java arrays

27
推荐指数
5
解决办法
7万
查看次数

标签 统计

java ×3

arrays ×2

python ×1