Разница в коллекции Java между JDK 6 и JDK8

Халифа

Мне было интересно, изменилась ли реализация java.util.collections между Java 6 и Java 8. У меня есть этот тест, который отлично работает в Java 6, но не в Java 8.

Set<String> types = new HashSet<String>();
String result;
types.add("BLA");
types.add("TEST");

Результат в Java 6: [BLA, TEST] Результат в Java 8: [TEST, BLA] Я уже просматривал документацию и примечания к выпуску JDK 7 и JDK 8, но не нашел никакой разницы между JDK 6 и двумя другие по этому поводу. Заранее благодарим за разъяснения.

Они были

У вас нет причин ожидать [BLA, TEST]вывода в JDK6 или JDK8, поскольку Javadoc не обещает, что элементы HashSetбудут напечатаны в соответствии с порядком вставки (или любым порядком). Разные реализации могут производить разный порядок.

Если вы хотите обеспечить вывод в обоих JDK, используйте a LinkedHashSet, который поддерживает порядок вставки:

Set<String> types = new LinkedHashSet<String>();
String result;
types.add("BLA");
types.add("TEST");
System.out.println (types);

напечатает

[BLA, TEST]

в обеих версиях.

Кстати, этот вывод также не гарантируется Javadoc, поэтому его можно рассматривать как деталь реализации, которая может измениться в будущих версиях, но вряд ли изменится. Причина этого вывода является то , что AbstractCollection«s toString()(который является внедрение HashSetи LinkedHashSetиспользование) перечисляет элементы в порядке их возвращенный итератор.

Строка java.util.AbstractCollection.toString ()

Возвращает строковое представление этой коллекции. Строковое представление состоит из списка элементов коллекции в том порядке, в котором они возвращаются ее итератором , заключенного в квадратные скобки («[]»). Смежные элементы разделяются символами «,» (запятая и пробел). Элементы преобразуются в строки как String.valueOf (Object).

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

Как прочитать значение аннотации Java с JDK8 и JDK11?

Тернарный оператор Java против if / else в <JDK8 совместимости

Java (до обновления 131 JDK8) приложения, работающие в контейнере докеров, проблемы с ЦП / памятью?

Как заставить код java8, который использует Unsafe, работать на jdk8 и jdk9?

Как автоматизировать Maven и Java JDK8 установку с Groovy для Jenkins?

JDK8 регулирует время java.time.Instant

Создайте Jar, совместимый с Java 7, с помощью IntelliJ, используя JDK8

Что значит установить путь к jdk8 при запуске gradle 6,7,8?

JDK8 не работает с JDK8 (клиент WS)

Использование Java ServiceLoader сборки с jdk8 использования в> = java9

Улучшилось ли использование памяти Java после JDK 6?

Java 1.6 - это то же самое, что JDK 6?

Java Base64 Sun to JDK8

Архивирование потоков с использованием JDK8 с лямбда-выражением (java.util.stream.Streams.zip)

Java Base64 Sun на JDK8

Запуск файла java.class из командной строки Linux - установлен Oracle JDK8 - openJDK удален

Как мы должны управлять потоком jdk8 для нулевых значений

Макет Javadoc изменен с JDK8

ConcurrentHashmap в объяснении кода JDK8

минимизация области блокировки для операции проверки и установки JDK8 ConcurrentHashMap

Модули типа данных и имен параметров Jackson JDK8 не работают вместе

JDK8: невозможно проанализировать LocalTime

Присоединение к спискам одного и того же типа объекта, используя только JDK8 + Lambdas

Установка JDK8 на самодельный openshift

Ошибка в преобразовании даты jdk8?

Как заставить Eclipse использовать JDK8 для компиляции проекта?

Час летнего времени из базы данных местного часового пояса с использованием JDK8

Строка # intern () в jdk8

Ошибка создания клиента WebService с JDK8

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    TypeError: store.getState não é uma função. (Em 'store.getState ()', 'store.getState' é indefinido, como posso resolver esse problema?

  3. 3

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  4. 4

    (fields.E300) Поле определяет связь с моделью, которая либо не установлена, либо является абстрактной.

  5. 5

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  6. 6

    How to click an array of links in puppeteer?

  7. 7

    Перебирайте несколько столбцов в фрейме данных Panda и находите уникальные значения подсчета

  8. 8

    Merging legends in plotly subplot

  9. 9

    ViewPager2 мигает / перезагружается при смахивании

  10. 10

    Текущая ветка не настроена для извлечения В конфигурации не найдено значение для ключа branch.master.merge

  11. 11

    How to normalize different curves drawn with geom = "step" when using stat_summary

  12. 12

    SQL Вычтите две строки друг от друга в одном столбце, чтобы получить результат

  13. 13

    Метод ошибки Illuminate \\ Database \\ Eloquent \\ Collection :: save не существует. в Laravel

  14. 14

    Ошибка «LINK: фатальная ошибка LNK1123: сбой при преобразовании в COFF: файл недействителен или поврежден» после установки Visual Studio 2012 Release Preview

  15. 15

    JavaFX TextArea как установить текст с автоматическим переносом новой строки

  16. 16

    Как я могу нарисовать заполненный прямоугольник в JFreeChart?

  17. 17

    как я могу удалить vue cli 2?

  18. 18

    Отчеты Fabric Debug Craslytic: регистрация, отсутствует идентификатор сборки, применить плагин: io.fabric

  19. 19

    Elasticsearch - Нечеткий поиск не дает предложения

  20. 20

    Метки значений столбцов BarChart скрыты полем

  21. 21

    Ошибка Phusion Passenger с Rails 4 и Ruby 2.5

популярныйтег

файл