Создать коллекцию А и вставить туда элементы последовательности в произвольном порядке?
Ребята, я новичок в java, дали задание
Необходимо проделать определенные трансформации с данными, используя для это корректные коллекции и алгоритмы из Java Collection Framework
I. Сгенерируйте 1 000 000 последовательных целых чисел
II. Создайте коллекцию A и вставьте туда элементы последовательности в произвольном порядке
III. Покажите, что порядок произвольный
IV. Напишите проверку на то, что все элементы в данной коллекции A уникальны (докажите это каким-либо способом)
V. Найдите минимальный элемент в данной последовательности
VI. Удалите все нечетные элементы из последовательности
VII. Найдите предпоследний по величине элемент
Создал массив ArrayList, добавил в него миллион чисел, попробовал вывести на экран, всё нормально. Дальше на создании коллекции приехал. Не понимаю какую именно взять(подозреваю что HashSet), как создать, то ли в этом классе, то ли метод нужен. Если да, то какой. Помогите пожалуйста
Спасибо огромное. Очень помог. Нет слов, чтобы выразить благодарность)!!! Только единственный момент, не увидел коллекцию "А" и добавление этого миллиона в неё
ArrayList<Integer> list = new ArrayList(); // Создание коллекции (В данном случае имя list, можете переименовать на "A")
for (int i = 0; i < 1000000; i++) { // Заполнение коллекции последовательностью чисел от 0 до 1000000
list.add(i);
}
// Возможно не лучшее решение, но это первое что пришло в голову, а более лучшее решение обдумывать не хочется.
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) + " "); // Выводим последовательность четных чисел
}
}
}
Map<Integer, Boolean> map = new HashMap<>();
for (int i = 0; i < list.size(); i++) {
map.put(list.get(i), true); // Map всегда содержит только уникальные ключи
}
лучше использовать Set final Set<Integer> set = new HashSet<>(list);
2. Сортировать списки по возрастанию лучше так Collections.sort(list);