Java 快速调用以生成包含从0到N的数字的数组
这里有一个简单的问题——主要是关于API的 我想以随机顺序遍历数组 很容易做到:Java 快速调用以生成包含从0到N的数字的数组,java,Java,这里有一个简单的问题——主要是关于API的 我想以随机顺序遍历数组 很容易做到: 用数字0到N填充一个列表 使用集合对列表进行洗牌。洗牌 使用这个无序列表来指导我的数组迭代 但是,我想知道步骤1(生成从0到N的数字列表)是否存在于预先编写的代码中 例如,它是否是guava的XYZ类中的一种方便方法???Java不允许您自动填充值。有关在java中填充数组的方法,请参见此问题 “Java不允许您自动填充值。有关在java中填充数组的方法,请参见此问题 “注意到你特别强调“快速”,我无法想象会有比这
例如,它是否是guava的XYZ类中的一种方便方法???Java不允许您自动填充值。有关在java中填充数组的方法,请参见此问题
“Java不允许您自动填充值。有关在java中填充数组的方法,请参见此问题
“注意到你特别强调“快速”,我无法想象会有比这更快的事情发生
List<Integer> = new ArrayList<Integer>(range);
List=newarraylist(范围);
然后迭代并填充每个条目。请注意,我设置容量是为了避免列表在封面下调整大小。注意到您特别强调“快速”,我无法想象会比
List<Integer> = new ArrayList<Integer>(range);
List=newarraylist(范围);
然后迭代并填充每个条目。请注意,我设置容量是为了避免列表在封面下调整大小。番石榴中最接近的东西是
ContiguousSet.create(Range.closedOpen(0, n), DiscreteDomains.integers())
…但是,坦率地说,仅仅为自己编写
循环可能更具可读性。番石榴中最接近的东西是
ContiguousSet.create(Range.closedOpen(0, n), DiscreteDomains.integers())
…但是,坦率地说,仅仅为自己编写循环可能更具可读性。如果您跳过步骤1,立即进行疏解,我认为您将获得最快的解决方案
int range = 1000;
List<Integer> arr = new ArrayList<Integer>(range);
for(int i=0;i<range;i++) {
arr.add((int)(Math.random()*i), new Integer(i));
}
int范围=1000;
List arr=新阵列列表(范围);
对于(int i=0;i如果你跳过步骤1,立即进行刷毛,我认为你会得到最快的解决方案
int range = 1000;
List<Integer> arr = new ArrayList<Integer>(range);
for(int i=0;i<range;i++) {
arr.add((int)(Math.random()*i), new Integer(i));
}
int范围=1000;
List arr=新阵列列表(范围);
对于(int i=0;i您可能希望查看apachecommons
,在许多其他有用的函数中,该函数在RandomDataGenerator
类中实现该方法
这显然比填充列表
或数组
的方法要大得多,但是commons是真正强大的库,它为数学计算提供了更好的方法。您可能想查看Apache commons
,在许多其他有用的函数中,它实现了metRandomDataGenerator
类中的hod
这显然比填充列表
或数组
的方法要大得多,但commons是真正强大的库,它为数学计算提供了更好的方法。编写自己的方法来实现这一点很容易。同意,但像Doubles这样的小方便方法。比较(double d1,double d2)使代码更具可读性。如果我可以替换for循环并了解一批可能有用的方便方法,那将是非常好的。编写自己的方法来实现这一点非常简单。同意,但像double这样的小方便方法。比较(double d1,double d2)使代码更具可读性。如果我能替换for循环并了解一批可能有用的方便方法,那将是非常棒的。Thx。番石榴中的小东西确实很有用。这就是我问的部分原因——以防有更多的小“可读性方法”我不知道的是,有些情况下,番石榴潜伏者可能会认为是“反可读的方法”,我怀疑这可能是一个这样的案例。thux。番石榴中的小东西确实是有帮助的。这就是我问的原因的一部分-如果有另外一批“可读性方法”的话。我不知道。有些情况下,番石榴开发人员可能会认为“反可读的方法”,我怀疑这可能是一个这样的例子。