2015-01-31 84 views
0

我是一个初学者java android程序员,并且我试着去考虑函数,它将检查数组中是否有多个相同的数字,如果它放置了一个新的该阵列 在随机数这是我得到:检查数组中是否存在多于一个相同的变量

 for (int i = 1; i < number.length; i++) { 
      if (number[i] == number[i - 1]) 
       putTextOnButtons(); 
     } 
private void putTextOnButtons() { 

    for (int i = 0; i < 4; i++) { 
     int num = rand.nextInt(50) + 1; 
     number[i] = num; 
    } 

但我不知道该怎么做的检查我用事先功能putTextOnButtons() 谢谢了! 没关系,我知道了,我用递归这样的:

private void putTextOnButtons() { 

    for (int i = 0; i < 4; i++) { 
     int num = rand.nextInt(15) + 1; 
     number[i] = num; 
     buttons[i].setText(num + ""); 
     sortArray(number); 
     for (int j = 1; j < number.length; j++) { 
      if (number[i] == number[i - 1]) 
       putTextOnButtons(); 
     } 
     sortArray(number); 
    } 
} 
+0

) – 2015-01-31 21:26:09

+0

这是最好用数据做不允许重复的结构(如:一个集合)。如果您需要维护元素的顺序,请使用有序集合。 – 2015-01-31 21:29:55

回答

0

可以手动检查这一点,或用集。

手册检查:

int[] numbers = new int[]{1, 2, 3, 4, 5, 5, 6}; 
boolean found = false; 
for (int i=0; i<numbers.length; i++) { 
    for (int j=i+1; j<numbers.length; j++) { 
     if (numbers[i]==numbers[j]) { 
      found = true; 
      break; 
     } 
    } 
    if (found) { 
     break; 
    } 
} 

//System.out.println(found); 

if (found) { 
    // do what you want 
} 

检查与设置:

Integer[] numbers = new Integer[]{1, 2, 3, 4, 5, 5, 6}; 
HashSet<Integer> numberSet = new HashSet<Integer>(Arrays.asList(numbers)); 
boolean found = (numbers.length>numberSet.size()); 

//System.out.println(found); 

if (found) { 
    // do what you want 
} 
0

给此一去,告诉我它是否有效!和平。

duplicates=false; 
for (j=0;j<number.length;j++) 
for (k=j+1;k<number.length;k++) 
    if (k!=j && number[k] == number[j]) 
    { 
    duplicates=true; 
    putTextOnButtons(); 
    } 

Source

0

难道这

如果要检查,是有阵列中的两个相同的,甚至调用putTextOnButtons(后
for (i=0;i<number.length;i++) 
{ 
    for (j=i+1;j<number.length;j++) 
    { 
     if (j!=i && number[j] == number[i]) 
     { 
      // Get random value 
      Random rand = new Random(); 
      int randomNum = rand.nextInt((max - min) + 1) + min; 
      // Insert the random number if duplicate is found 
      number[j] = randomNum; 
     } 
    } 
} 
相关问题