2013-10-12 47 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

为什么你需要检查原始数组中的位置?您可以实现一种排序算法,根据您在原始数组中的位置以您想要的方式排列相同的元素。我会发布一个例子,但你还没有清楚你想要如何订购相同的元素。