Java 为数组中的每个对象绘制随机数,并移除具有最小值的对象

Java 为数组中的每个对象绘制随机数,并移除具有最小值的对象,java,random,Java,Random,正如在标题中一样,我需要对数组中的所有对象绘制一个随机数,并移除绘制数最低的对象。一种方法是保存所有绘制的值,然后相互比较。有没有一种有效的方法?比苏多代码: while(!myArray.isEmpty) { for(String str : myArray) { // draw a random number // do some more stuff/save number into a map. } // remove object wit

正如在标题中一样,我需要对数组中的所有对象绘制一个随机数,并移除绘制数最低的对象。一种方法是保存所有绘制的值,然后相互比较。有没有一种有效的方法?比苏多代码:

while(!myArray.isEmpty) {
    for(String str : myArray) {
        // draw a random number
        // do some more stuff/save number into a map.
    }
// remove object with lowest number (or draw again if there is conflict between lowest numbers)
}

首先,我建议使用
列表
,因为您无法真正有效地从数组中“删除”元素。另外,你不需要保存所有的随机数字,然后找到最低的一个,你可以在同一时间

while(!myList.isEmpty()) {
  double lowestRandom = 1.0;
  int lowestIndex; //for efficient removal, save index instead of element
  for(int i = 0; i < myList.size(); i++) {
    double random = Math.random();
    if(random < lowestRandom) {
      lowestRandom = random;
      lowestIndex = i;
    }
  }
  myList.remove(lowestIndex);  
}
while(!myList.isEmpty()){
双下限=1.0;
int lowestinex;//为了有效地删除,请保存索引而不是元素
对于(int i=0;i
首先,我建议使用
列表
,因为您无法真正有效地从数组中“删除”元素。另外,你不需要保存所有的随机数字,然后找到最低的一个,你可以在同一时间

while(!myList.isEmpty()) {
  double lowestRandom = 1.0;
  int lowestIndex; //for efficient removal, save index instead of element
  for(int i = 0; i < myList.size(); i++) {
    double random = Math.random();
    if(random < lowestRandom) {
      lowestRandom = random;
      lowestIndex = i;
    }
  }
  myList.remove(lowestIndex);  
}
while(!myList.isEmpty()){
双下限=1.0;
int lowestinex;//为了有效地删除,请保存索引而不是元素
对于(int i=0;i
为什么不在随机索引中删除一个呢?好问题。我需要从牌堆中随机抽取我游戏的玩家的牌,并移除牌数最低的玩家。然后再进行一轮,直到最后一轮。为什么不随机删除一个呢?好问题。我需要从牌堆中随机抽取我游戏的玩家的牌,并移除牌数最低的玩家。然后再来一轮,直到最后一轮。谢谢你,亲爱的。你救了我的大脑免于过热。有时解决方案很简单,但我们无法解决。这就是我喜欢stackoverflow的原因。请注意,您必须使用
=1
来初始化
lowestRandom
,以便在第一次迭代中满足
随机
条件。我刚刚编辑了:)没问题,兄弟。我不是初学者。我只是因为睡眠不足而过度控制了我的大脑。我很难睁开眼睛。埃弗发生在你身上了?肯定去过那里。坚持下去:)谢谢你,亲爱的。你救了我的大脑免于过热。有时解决方案很简单,但我们无法解决。这就是我喜欢stackoverflow的原因。请注意,您必须使用
=1
来初始化
lowestRandom
,以便在第一次迭代中满足
随机
条件。我刚刚编辑了:)没问题,兄弟。我不是初学者。我只是因为睡眠不足而过度控制了我的大脑。我很难睁开眼睛。埃弗发生在你身上了?肯定去过那里。保持下去:)