2013-10-12 52 views
-2

如果我有兩個數組,一個名爲的級別爲,另一個名爲的級別爲,它們都可以容納12個元​​素。 評級從用戶輸入中獲取其元素(在這種情況下爲掃描儀)。 排名數組然後將從評分數組中排列的元素並將它們從最低排名到最高排名,但如果在評分中有兩個相同的元素,程序應該找到元素在索引中的位置以及檢查這些數字的排名。Java數組,找到相等元素

那麼有沒有一種方法或一種方法,找到相同的元素和多少相同? 這是目前的代碼。

public static void main(String[] args) { 
    int participant = 0; 
    int rating[] = new int[12]; 
    double rank[] = {1,2,3,4,5,6,7,8,9,10,11,12}; 

    String display = "Participant\tRating\t\tRank\n"; 

    Scanner scan = new Scanner(System.in); 

      for(int i=0; i<rating.length; i++){ 
       participant++; 
       System.out.println("Enter rating for participant "+participant+":"); 
       rating[i] = scan.nextInt(); 
      }   
      Arrays.sort(rating); 
      participant = 1;  
      for(int i=0; i<rank.length; i++){ 

       display += participant+"\t\t"+rating[i]+"\t\t";  
       if(rating[i] == rating[i]-1 || rating[i] == rating[i]+1){ 
         display += (rank[i]+rank[i]-1)/2; 
        } 
        else{ 
         display += rank[i]; 
        } 
        display+="\n"; 
        participant++; 
       } 
       System.out.println(display); 

    } 

我要的是每當有兩個等級陣列中的元素一樣,它應該由2

希望在採取了等評價要素的等級號碼和分裂的事情,這使得感。

+2

總有辦法。請顯示你的嘗試。並問我們你卡在哪裏或出現錯誤。 –

+0

嘗試一下,你會發現你比解決問題更接近你想象的:) – icedwater

回答

0

您可以迭代第一個數組並將它們放入散列表中,關鍵是元素的值是count。

如果你只是想知道它是否有重複,你可以把它們放在一個集合中,並比較數組和大小。

0

爲什麼你需要檢查原始數組中的位置?您可以實現一種排序算法,根據您在原始數組中的位置以您想要的方式排列相同的元素。我會發佈一個例子,但你還沒有清楚你想要如何訂購相同的元素。