Даны два списка. Необходимо слить два списка в один, отсортировать по убыванию и вывести.
Вводится целое число N и N чисел со следующей строки через пробел, потом целое число M и М чисел со следующей строки.
Пример1:
Ввод
5
1 2 3 4 5
7
5 4 3 1 2 6 7
Вывод:
7 6 5 5 4 4 3 3 2 2 1 1
Пример2:
Ввод
7
0 3 1 5 7 4 6
11
1 1 1 1 1 1 1 1 1 1 1
Вывод
7 6 5 4 3 1 1 1 1 1 1 1 1 1 1 1 1 0
Набросал всего подряд, вроде как понимаю что нужно при помощи list.addAll(....) списки объединить, а потом сортировать и при помощи реверса развернуть...но не получается желаемый результат.
public static void main(String[] args) throws Exception
{
Scanner a = new Scanner(System.in);
Scanner b = new Scanner(System.in);
Scanner c = new Scanner(System.in);
Scanner d = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<>();
ArrayList<Integer> list2 = new ArrayList<>();
for (int i=0; i<5; i++) {
list.add(b.nextInt());
}
for (int i=0; i<5; i++) {
list.add(d.nextInt());
}
list.addAll(list2);
Collections.sort(list);
Collections.reverse(list);
for (int i : list)
System.out.print(i + " ");
}
Помогите с решением.
Вам же даются размер списков, почему вы их игнорируете, а оба цикла у вас до 5?
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<>();
int n;
n = sc.nextInt();
for (int i = 0; i < n; i++) {
list.add(sc.nextInt());
}
n = sc.nextInt();
for (int i = 0; i < n; i++) {
list.add(sc.nextInt());
}
Collections.sort(list);
Collections.reverse(list);
for (int i : list)
System.out.print(i + " ");
}
public class Main {
private final static Function<String, Stream<Integer>> CREATE_STREAM
= (s) -> Arrays.stream(s.split(" ")).map(Integer::valueOf);
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Stream.concat(CREATE_STREAM.apply(sc.nextLine()), CREATE_STREAM.apply(sc.nextLine()))
.sorted(Comparator.reverseOrder())
.forEach(System.out::println);
}
}
Ну или так...
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Stream.of(sc.nextLine(),sc.nextLine())
.flatMap(s->Arrays.stream(s.split(" ")))
.map(Integer::valueOf)
.sorted(Comparator.reverseOrder())
.forEach(System.out::println);
}
Какие существуют виды рекламных бордов и как выбрать подходящий?
Аренда удаленного сервера: цены, провайдеры и условия. Руководство для начинающих
Изначально json приходит в виде (в списке items есть поле id равное 4 у первого элемента !!!):
Хочу создать ярлык Java-приложения у себя на рабочем столе (и вообще чтобы в списке приложений былоФайл я создал в директории usr/share/applications с расширением