@KB20

Создать коллекцию А и вставить туда элементы последовательности в произвольном порядке?

Ребята, я новичок в java, дали задание
Необходимо проделать определенные трансформации с данными, используя для это корректные коллекции и алгоритмы из Java Collection Framework
I. Сгенерируйте 1 000 000 последовательных целых чисел
II. Создайте коллекцию A и вставьте туда элементы последовательности в произвольном порядке
III. Покажите, что порядок произвольный
IV. Напишите проверку на то, что все элементы в данной коллекции A уникальны (докажите это каким-либо способом)
V. Найдите минимальный элемент в данной последовательности
VI. Удалите все нечетные элементы из последовательности
VII. Найдите предпоследний по величине элемент

Создал массив ArrayList, добавил в него миллион чисел, попробовал вывести на экран, всё нормально. Дальше на создании коллекции приехал. Не понимаю какую именно взять(подозреваю что HashSet), как создать, то ли в этом классе, то ли метод нужен. Если да, то какой. Помогите пожалуйста
  • Вопрос задан
  • 1974 просмотра
Решения вопроса 1
evgeniy8705
@evgeniy8705
Повелитель вселенной
// Возможно не лучшее решение, но это первое что пришло в голову, а более лучшее решение обдумывать не хочется.
import java.util.*;

public class App {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList(); // Создание коллекции

        for (int i = 0; i < 1000000; i++) { // Заполнение коллекции последовательностью чисел от 0 до 1000000
            list.add(i);
        }

        Collections.shuffle(list); // организация произвольного порядка

        for (int i = 0; i < 10; i++) {
            System.out.println(list.get(i) + " "); // Показываем что порядок произвольный, выводя первые 10 чисел к примеру
        }

        Map<Integer, Boolean> map = new HashMap<>();

        for (int i = 0; i < list.size(); i++) {
            map.put(list.get(i), true); // Map всегда содержит только уникальные ключи
        }

        System.out.println(list.size() == map.size()); // Если размеры равны то это значит что в исходной коллекции элементы были уникальны

        list.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer a, Integer b) {
                return a - b;
            }
        });

        System.out.println("Минимальный элемент: " + list.get(0));
        System.out.println("Предпоследний по величине элемент: " + list.get(list.size() - 2));

        ArrayList<Integer> alist = new ArrayList<>();

        for (int i = 0; i < list.size(); i++) {
            if (list.get(i) % 2 == 0) {
                alist.add(list.get(i)); // Сохраняем только четные числа
            }
        }

        list = null;

        for (int i = 0; i < alist.size() / 1000; i++) { // первые 1000 элементов
            System.out.println(alist.get(i) + " "); // Выводим последовательность четных чисел
        }
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы