Set из растений

  • 2
  • Недоступна
Время сборки урожая наступило. Создадим коллекцию Set с типом элементов String. А добавим в неё вот какие десять строк: арбуз, банан, вишня, груша, дыня, ежевика, женьшень, земляника, ирис, картофель. После этого выведем содержимое коллекции на экран, параллельно наблюдая за порядком добавленных.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (149)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Павел Соловьёв докер - механизатор в Порт
30 апреля, 16:15
Возможно уже писали , но : Set<String> set = new HashSet<>(); работает и принимается на ура , зачем многие пишут : HashSet<String> set = new HashSet<String>(); для меня загадка ... надеюсь в дальнейших лекциях я пойму что я делаю )
Андрей
Уровень 8, Сыктывкар, Россия
16 июня 2021, 03:37
Пробовал сделать вот так: while (true) { if (reader.readLine() == null || reader.readLine().isEmpty()) break; plants.add(reader.readLine()); } Результат удивил. Может кто-нибудь объяснить почему?
Павел Соловьёв докер - механизатор в Порт
30 апреля, 16:07
• Программа не должна считывать строки с клавиатуры. Думаю проблема именно в этом .
Boris Gretskis
Уровень 9, Могилев
12 марта 2021, 11:09
после таких задач очень громко мыслишь матом подскажите в чем разница ashSet<String> Set = new HashSet<String>(); и Set<String> set = new HashSet<>(); крайнее это как якобы нужно
Артем
Уровень 1, Тула
25 марта 2021, 08:18
Ну как бы для проектирования всегда лучше через интерфейсы работать. Поэтому лучше использовать Set, чем HashSet. и имена переменных обычно пишут с маленькой.
Евгений N
Уровень 12
8 апреля, 19:13
"крайнее" - это слева и справа то что внизу - это последнее
Domingo el Sumeri
Уровень 13, Екатеринбург
14 февраля 2021, 07:40
Попробовал сделать быструю инициализацию: Set<String> set = new HashSet<>(Arrays.asList("арбуз", "банан", "вишня", и тд) В IDEA все прошло, валидатор не пропустил по п.3 задания. Пришлось каждую строку через set.add(..) добавлять. Тогда принял.
Тарас Шкарапут
Уровень 17, Ульяновск, Россия
29 марта 2021, 12:34
Можно еще через Collections.addAll одной строкой прописать.
Anna Makarova
Уровень 13, Praha, Чехия
12 января, 22:21
Только не забыть import java.util.Collections;
Rodion
Уровень 20, Munich, Germany
28 января 2021, 22:06
просто оставлю это здесь: import java.util.Iterator; и лекция, но там этого нет: https://javarush.ru/quests/lectures/questsyntax.level08.lecture02
Flexo Bending Unit #3370318
29 января 2021, 09:42
можно обойтись и без итератора, с помощью foreach
Vilgelm Brinster
Уровень 18, Караганда, Казахстан
14 января 2021, 06:37
Написано "реализация HashSet". Использую ее, не проходит проверку. Использую обычный Set, проходит всё. Зачем в заблуждение вводить?
Yana_Ivory
Уровень 11, Киев, Украина
28 января 2021, 17:08
ты так писал Set<String> set = new HashSet<String>(); ?
YesOn
Уровень 8, Томск, Россия
18 января, 08:27
Я так написал, всё прошло.
AlexanderS
Уровень 18
21 ноября 2020, 16:05
Шпаргалка для тех кто не хочет копаться в интернете HashSet, TreeSet и LinkedHashSet относятся к семейству Set. В множествах Set каждый элемент хранится только в одном экземпляре, а разные реализации Set используют разный порядок хранения элементов. В HashSet порядок элементов определяется по сложному алгоритму. Если порядок хранения для вас важен, используйте контейнер TreeSet, в котором объекты хранятся отсортированными по возрастанию в порядке сравнения или LinkedHashSet с хранением элементов в порядке добавления. Методы • public Iterator iterator() • public int size() • public boolean isEmpty() • public boolean contains(Object o) • public boolean add(Object o) • public boolean addAll(Collection c) • public Object[] toArray() • public boolean remove(Object o) • public boolean removeAll(Collection c) • public boolean retainAll(Collection c) - (retain — сохранить). Выполняет операцию "пересечение множеств". • public void clear() • public Object clone() Вывод на экран элементов множества через итератор Iterator<String> itr = имя хеш сета, данное при инициализации.iterator(); while (itr.hasNext()) { System.out.println(itr.next().toString()); }
HungryGoblin
Уровень 8, Белгород, Россия
15 октября 2020, 20:02
Как-то мало овощей и фруктов в примере... Хотелось бы видеть не только произрастающие в средней полосе России, но и Австралийские, также плохо представлена овощная база Малайзии. Реально странно зачем столько в примере... Наверное, чтобы тормозить процесс обучения.
Dmitriy
Уровень 23, Пенза, Россия
10 октября 2020, 11:45
кто нибудь объяснит почему в выводе последовательность изменилась?? спасибо)
bvg
Уровень 9, Москва
29 октября 2020, 23:11
На уровне догадки/предположения. Там сложный алгоритм хранения\ротации данных, который не только сортирует данные по хэш-сумме , но и "подготовливает" их к чему-то вроде бинарного поиска (ну или каких-то внутренних нужд). Перестановки начинаются при _приближении_ размеров нашего списка к к "коэффициенту заполнения" HashSet, который по умолчанию равняется 0.75 от 16-и элементов, т.е. 12-и. По факту, на моем пробном наборе первое "перемешивание" происходит уже с 9+ элементов - воможно тут есть еще некий фактор, типа динамического размера этого самого "насколько мы близко", исходя из, например, объёма данных или реализации/условий запуска jvm. Грубая визуализация:
Set<String> set = new HashSet<String>();
final String fmt = "%4s\t // %s%n";

Collections.addAll(set, "a1", "b2","c3", "d4", "e5", "f6", "g7", "h8", "i9");
for (String s : set)
	System.out.printf(fmt, s, s.hashCode());
System.out.println();

Collections.addAll(set, "j10", "k11", "l12");
for (String s : set)
	System.out.printf(fmt, s, s.hashCode());
System.out.println();

Collections.addAll(set, "m13", "n14", "o15", "p16");
for (String s : set)
	System.out.printf(fmt, s, s.hashCode());
SolomonVP🌅 ☕️ в 🧑🏻‍💻
9 октября 2020, 23:09
Эм... в предыдущей лекции копия задачи. А так... чтобы разнообразить себе жизнь... используйте
Сollections.addAll(set, ..., ......, ......, ........, ......, .....,.....);
На сегодня всё. Новую информацию надо узнавать на свежую голову. :) Пойду пока по старым задачкам пройдусь немного.