且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在数组中查找重复项并仅打印一次

更新时间:2022-03-01 21:47:04

只需将您发现重复的数字添加到某些结构中,例如 HashSet HashMap ,这样您就可以找到它稍后你会发现另一个重复。

Just add the number you will find duplicated to some structure like HashSet or HashMap so you can find it later when you will detect another duplication.

Set<Integer> printed = new HashSet<Integer>();

  for(int i=0; i<buffer.length; i++) {
    for(int k=i+1; k<buffer.length; k++) {
      if(buffer[k] == buffer[i]) {
        Integer intObj = new Integer(buffer[k]);
        if (!printed.contains(intObj)) {
          System.out.println(buffer[k]);
          printed.add(intObj);
        }
        break;
       }
    }
  }

更好的O( n)alghorithm:

Set<Integer> printed = new HashSet<Integer>();

  for(int i=0; i<buffer.length; i++) {
    if (!printed.add(new Integer(buffer[i])) {
       System.out.println(buffer[i]);
    }
  }