Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
9 / 1 / 0
Регистрация: 01.07.2019
Сообщений: 26

Как сделать слияние двух списков с последующей сортировкой?

04.07.2019, 20:19. Показов 6319. Ответов 4

Студворк — интернет-сервис помощи студентам
Даны два списка. Необходимо слить два списка в один, отсортировать по убыванию и вывести.

Вводится целое число 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(....) списки объединить, а потом сортировать и при помощи реверса развернуть...но не получается желаемый результат.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 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 + " ");
}
Помогите с решением.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.07.2019, 20:19
Ответы с готовыми решениями:

Как из двух списков сделать один список кортежей/списков
Доброго времени суток! Буду очень благодарен, если поможете из двух списков, к примеру a и b, сделать список c, который содержит пары...

Слияние двух отсортированных списков
Напишите функцию List&amp; merge(List&amp; L1, List&amp; L2), добавляю- щую к упорядоченному списку L1 также упорядоченный список L2 и ...

Слияние двух упорядоченных списков
Всем привет! Можете подсказать как делать? Условие: Провести слияние двух упорядоченных списков. В качестве элементов первого списка...

4
54 / 45 / 18
Регистрация: 09.02.2015
Сообщений: 165
04.07.2019, 21:09
Как то так, без проверок и т.п.:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.io.*;
import java.util.*;
 
public class Solution implements Serializable {
    public static List<Integer> lists = new ArrayList<>();
 
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        lists.addAll(getListInConsole(Integer.parseInt(reader.readLine())));
        lists.addAll(getListInConsole(Integer.parseInt(reader.readLine())));
        Collections.sort(lists);
        Collections.reverse(lists);
        for(int it : lists)
            System.out.println(it);
    }
 
    public static List<Integer> getListInConsole(int count) throws IOException {
        List<Integer> listToArrayInConsole = new ArrayList<>();
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        for (int i = 0; i < count - 1; i++) {
            listToArrayInConsole.add(Integer.parseInt(reader.readLine()));
        }
 
        return listToArrayInConsole;
    }
}
0
9 / 1 / 0
Регистрация: 01.07.2019
Сообщений: 26
04.07.2019, 21:43  [ТС]
А почему Вы именно BufferedReader используете? Чем плох Scanner?

Добавлено через 2 минуты
В итоге задачу-то я конечно решил для себя более понятным способом, но за Ваш вариант тоже спасибо!
Вот мое решение, если кому-то будет это интересно...
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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 + " ");
}
0
 Аватар для Aviz__
2741 / 2050 / 507
Регистрация: 17.02.2014
Сообщений: 9,470
05.07.2019, 08:57
Лучший ответ Сообщение было отмечено Сан Александрыч как решение

Решение

Цитата Сообщение от Сан Александрыч Посмотреть сообщение
нужно при помощи list.addAl

Java
1
2
3
4
5
6
7
8
public static void main(String[] args) {
        List<Integer> list1 = new LinkedList<>(Arrays.asList(8, 2, 3, 4, 5));
        List<Integer> list2 = new LinkedList<>(Arrays.asList(8, 1, 7, 3, 4, 5, 9, 6));
        list1.addAll(list2);
        Collections.sort(list1);
        Collections.reverse(list1);
        System.out.println(list1);
    }
1
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
05.07.2019, 09:06
Цитата Сообщение от Aviz__ Посмотреть сообщение
Collections.sort(list1);
* * * * Collections.reverse(list1);
Collections.sort(new ArrayList<Integer>(), Collections.reverseOrder());
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.07.2019, 09:06
Помогаю со студенческими работами здесь

Слияние двух списков(срочно!)
Даны два списка, нужно их склеить. Вот, написал, но при комплияции выдаются неведомые мне ошибки. Кто-нибудь из опытных людей может мне...

Слияние двух упорядоченных списков в один упорядоченный
Даны два списка упорядоченные по не убыванию.Объединить их в третий список упорядоченный по не убыванию. Не могу разобраться с процедурой...

Слияние двух односвязных упорядоченных по неубыванию линейных списков
Разработайте программу слияния двух односвязных упорядоченных по неубыванию линейных списков в один упорядоченный список.

Слияние двух упорядоченных списков с сохранением алфавитного порядка
Задача (TASM): Провести слияние двух упорядоченных списков вида &quot;Фамилия И.О.&quot; с сохранением алфавитного порядка. Исходные и конечный...

Слияние двух списков. Ошибка "Индекс должен находиться в границах этого списка"
Есть метод слияния двух списков List&lt;int&gt; один. Например,подаю на вход первый список 27 42 -26 -12 -10 и второй список -45 -12 24 36 46. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru