Эта страница суммирует улучшения, сделанные к платформе наборов в версии 1.4 JavaTM 2 SDK.
- У класса утилиты Collections есть несколько новых методов:
- rotate(List list, int distance) - Поворачивает все элементы в списке указанным расстоянием. Эта работа распространена в вычислениях GUI: перемещение того или большего количества столбцов в таблице может быть выполнено эффективно, применяя эту работу к подсписку. Эта работа также распространена в математических и научных вычислениях.
- replaceAll(List list, Object oldVal, Object newVal) - Замены все возникновения одного указанного значения с другим. Это - по существу метод удобства. Хотя не трудный к программе, это очень обычно необходимо.
- indexOfSubList(List source, List target) - Возвраты индекс первого подсписка source, который равен target. Обычно используемый во многих доменах включая обработку текста.
- lastIndexOfSubList(List source, List target) - Возвраты индекс последнего подсписка source, который равен target. Обычно используемый во многих доменах включая обработку текста.
- swap(List list, int i, int j) - Подкачки элементы в указанных позициях в указанном списке. По существу метод удобства, хотя эта реализация быстрее чем наивная реализация.
- list(Enumeration e) - Возвраты ArrayList, содержащий элементы, возвратились указанным перечислением. Этот метод удобства обеспечивает функциональную совместимость между API наследства, которые возвращают перечисления и новые API, которые требуют наборов.
- Новый интерфейсный RandomAccess является интерфейсом маркера, который позволяет реализациям List указывать, что они поддерживают быстро (обычно постоянное время) произвольный доступ. Это позволяет универсальным алгоритмам изменять свое поведение, чтобы обеспечить хорошую производительность когда применено к или произвольный доступ или с последовательным доступом списки.
- Новый LinkedHashMap класса обеспечивает упорядоченную вставкой реализацию Map, которая работает почти с такой скоростью, как HashMap. Внутренне, это использует хэш-таблицу с двунаправленным связанным списком, пробегающим это в порядке вставки. Также доступный соответствующая реализация Set, названная LinkedHashSet.
- Новый класс IdentityHashMap является основанной на идентификационных данных реализацией Карты, основанной на хэш-таблице. Этот класс полезен для сохраняющих топологию преобразований графа объектов (таких как сериализация или глубокое копирование). Чтобы выполнить такие преобразования, Вы должны поддержать основанную на идентификационных данных "таблицу узла", которая отслеживает, из которых были уже замечены объекты. Основанные на идентификационных данных карты также используются, чтобы поддержать отображения объекта к метаинформации в динамических отладчиках и подобных системах. Наконец, основанные на идентификационных данных карты полезны в срыве "атакам имитации", следующим преднамеренно извращенного, равняется методам. (IdentityHashMap никогда не вызывает, равняется методу на его ключах.) Дополнительное преимущество этой реализации - то, что это быстро.