在未排序的数组中查找唯一元素

0 java arrays

所以每个人都知道初学者有一个任务,你有一个排序数组,你需要找到唯一值的数量.例如,如果int [] sorted = {0, 0, 1, 1, 2, 2},结果是3个唯一值.我在想 - 如果我想对未排序的数组做同样的事情.我知道我可以对它进行排序,让我的生活更轻松 - 但仍然如此.

一个例子:int [] numbers = {2, 7, 3, 2, 3, 7, 7}.我的第一个想法 - 我需要有2个for loops才能找到所有2个实例,而不是7个等等.这就是我怀疑的地方.

正如你可以看到7次重复,我想知道如何确保我不会计算两次.更确切地说 - 我需要某种标志,以表示我之前已经计算过该元素,但我不确定如何将其写下来.

我怎么能接近这个?不一定在代码中,也许只是一点点提示如何做到这一点?

MyT*_*nts 6

您可以使用Set来获取唯一元素

int [] numbers = {2, 7, 3, 2, 3, 7, 7}

Set<Integer> uniqueValue = new HashSet<>(Arrays.asList(numbers));
Run Code Online (Sandbox Code Playgroud)

如果使用Java 8,甚至更容易

Arrays.stream(number).distinct().toArray();
Run Code Online (Sandbox Code Playgroud)