Есть задание в котором нужно написать метод, который будет принимать массив и возвращать количество и отсортированную коллекцию уникальных элементов. Я решил просто использовать коллекцию TreeSet так как она гарантирует уникальное множество и сама отсортирует массив. Но у меня возникла проблема. Как правильно нужно выводить саму коллекцию и как в строке mySet.addAll(arr)
можно добавить все элементы из массива в коллекцию не используя цикл
public class JavaApplication8 {
public static void main(String[] args) {
int[] list = {5,7,8,7,8,23,22,23,31,35,31,40,41,40,40};
System.out.println(numUnique(list));
}
public static int numUnique(int[] arr){
TreeSet<Integer> mySet = new TreeSet<Integer>();
for( int i = 0; i < arr.length; i++){
mySet.add(arr[i]);
}
mySet.addAll(arr); // альтернативный вариант, что бы не использовать цикл
return mySet.size();
}
}
Вам нужно указать в описании метода тип возвращаемого значения Например :
public static TreeSet<Integer> numUnique(int[] arr){}
void - ничего не возвращает.
А если функционально :
public static List<Integer> numUnique(final int[] arr) {
return Arrays.stream(arr).distinct().sorted().boxed().collect(Collectors.toList());
}
Можно так, в этом случае метод принимает любые числа, им же типизирует результат:
public <T extends Number> List<T> numUnique(final T[] arr) {
return Arrays.stream(arr).distinct().sorted().collect(Collectors.toList());
}
Если вы можете принимать в аргументах не int[], а Integer[] , то можно еще так :
1) если у вас Java9+ то у интерфейса Set появились статические методы для инициализации (паттерн фабричный метод) , посему можно так можно :
return new TreeSet<>(Set.of(arr))
2) ну, а если версия Java9 ниже, чем указанная, и функциональный подход вам не по душе, то так:
return new TreeSet<>(Arrays.asList(arr));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я новичок в Spring и поэтому не очень понимаю почему без танцев с бубнами я не могу просто взять и получить из таблицы объект по его id
В LinkedHashSet есть хедер и там итератор по проходит по связному спискуНо в HashSet нет связного списка
Только начал изучать принципы "ООП"Хотел сделать программу, которая считывает символы, переводит их в смайликовый формат