Подсчет количества уникальных чисел в массиве int - PullRequest
0 голосов
/ 22 мая 2018

Попытка получить число уникальных (не дублированных) номеров массива статическим методом.Например, массив {1,1,2,4,5,5,7,78,89} будет иметь значение 7.

public class UniqueNumbes {
    public static void main(String[] args) {
        int[] test = {1, 2, 4, 5, 10, 30, 20, 1};
        int num = numUnique(test);
        System.out.println(num);
    }
    public static int numUnique(int[] list){
        int count= 0;
        int fin =list.length;
        Arrays.sort(list);
        for (int i = 0; i<=list.length; i++){
            if(list[i]==list[i-1]) 
                count++;
            }
            return fin-count;
    }
}

1 Ответ

0 голосов
/ 22 мая 2018

Поместите все в набор и верните размер набора.

import java.util.HashSet;
import java.util.Set;

public class UniqueNumbes {

    public static void main(String[] args) {
        int[] test = { 1, 2, 4, 5, 10, 30, 20, 1 };
        int num = numUnique(test);
        System.out.println(num);
    }

    public static int numUnique(int[] list) {
        // java.util.Set
        // "A collection that contains no duplicate elements." 
        Set<Integer> set = new HashSet<Integer>();
        for (int i = 0; i < list.length; i++) {
            set.add(list[i]);
        }
        return set.size();

    }
}
...