Java:在数组中查找重复项

时间:2018-10-22 16:42:00

标签: java arrays duplicates

我需要在程序中实现重复的搜索方法,但出现错误。 如果我注释掉重复的搜索部分,则程序运行正常。

错误(我注释掉重复的搜索部分):

  do{ 
   System.out.print("Please enter an integer or -1 to stop: ");
   input=Integer.parseInt(scan.nextLine()); //parse library function 
   /** 
    * for(int i=0; i<A.length; i++){
    *     for(int j=i+1; j<A.length; j++{
    *         if(A[i].equals(A[j]))
    *         System.out.println("Duplicate input. Please enter another 
                          value: ");
    *         }
    *       }
    */
   if(input != -1) //if input is 
   Display.userInput(input);
}
while(input != -1); 

2 个答案:

答案 0 :(得分:0)

尝试一下。

do{ 
   System.out.print("Please enter an integer or -1 to stop: ");
   input=Integer.parseInt(scan.nextLine());
   boolean flag = true;
   for(int i=0; i<A.length; i++){ 
      if(A[i].equals(input)) {
          System.out.println("Duplicate input. Please enter another value: ");
          flag = false;
          break;
      }
   }
   if(!flag) {
      continue;
   }
   if(input != -1) //if input is 
   Display.userInput(input);
}

while(input != -1); 

答案 1 :(得分:0)

    int A[] = {1, 5, 9, 5, 6};
    if (Arrays.stream(A).boxed()
            .collect(Collectors.groupingBy(Function.identity()))
            .entrySet()
            .stream()
            .map(Map.Entry::getValue)
            .map(Collection::size)
            .anyMatch(s -> s > 1)) {
        System.out.println("Duplicate input. Please enter another value:");
    }