public class Solution {
public static void print(HashSet<String> words) {
Iterator<String> it = words.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}
}
public static void main(String[] args) {
HashSet<String> words = new HashSet<>(Arrays.asList("Программированию обычно учат на примерах.".split(" ")));
print(words);
}
}
Sasha
2 уровень
Почему здесь выводится текст задом наперёд?
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Estimilian Диванный Воин
31 января 2021, 11:09решение
Он выводится не задом наперед, а в случайном порядке. Если HashSet здесь заменить на ArrayList то все выведется по порядку. Принцип же устройства множества - это добавление в него элементов БЕЗ порядкового номера.
Аналогия может быть приведена с мешком и пятью яблоками. Мы нумеруем каждое яблоко от 1 до 5 и кидаем их все в мешок HashSet. Затем с помощью метода print мы вслепую достаем из мешка по одному яблоку, пока там яблоки есть.
+4
Константин
31 января 2021, 11:08решение
Они не в обратном порядке, они в разброс просто. Так работает HashSet, он не сохраняет порядок элементов. Это набор уникальных значений (одинаковых элементов в нем быть не может).
+5
Константин
31 января 2021, 11:14
Java Syntax
8 уровень , 7 лекция https://javarush.com/quests/lectures/questsyntax.level08.lecture07
Одна строчка про Set, но ответ на Ваш вопрос
+3