从int []中删除重复项

时间:2015-02-26 04:10:55

标签: java

Java新手并试图做一些kata。目标是编写一个从int []中删除重复值的函数,并返回一个删除了重复项的int [],其顺序与原来的顺序相同。

我已经被困了一段时间了,有人能帮我指点正确的方向吗?目前的进展:

import java.util.*;

public class UniqueArray {
  public static int[] unique(int[] integers) {
    // Return integers when duplicates are not possible
    if (integers.length <= 1) {
      return integers;
    }

    ArrayList<Integer> newArray = new ArrayList<Integer>();

    // Check each word in integers against the new array
    for (int i = 0, j = integers.length; i < j; i++) {
      for (int k = 0, l = newArray.size(); k < l; k++) {

        // If match found, move to next int from integers
        if (integers[i] == newArray.get(k).intValue()) {
          break;
        }

      // If no matches found, add to new array
      newArray.add(integers[k]);
      }
    }

    // Convert ArrayList to int[]
    int[] finalArray = new int[newArray.size()];
    for (int i = 0, s = newArray.size(); i < s; i++) {
      finalArray[i] = newArray.get(i).intValue();
    }

    return finalArray;
  }
}

1 个答案:

答案 0 :(得分:2)

ArrayList为空,因此内循环不会被执行。

您可以改为遵循以下逻辑:

  • 遍历整数数组。
    • 检查ArrayList是否已包含整数。如果没有,请添加它。