2015-01-31 26 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; 
     } 
    } 
} 
相關問題