Эта страница суммирует улучшения, сделанные к платформе наборов в версии 1.4 JavaTM 2 SDK.
- У утилиты Collections class есть несколько новых методов:
- 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 class обеспечивает упорядоченную вставкой реализацию Map, которая работает почти с такой скоростью, как HashMap. Внутренне, это использует хэш-таблицу с двунаправленным связанным списком, пробегающим это в порядке вставки. Также доступный соответствующая реализация Set, названная LinkedHashSet.
- Новый class IdentityHashMap является основанной на идентификационных данных реализацией Карты, основанной на хэш-таблице. Этот class полезен для сохраняющих топологию преобразований графа объектов (таких как сериализация или глубокое копирование). Чтобы выполнить такие преобразования, Вы должны поддержать основанную на идентификационных данных "таблицу узла", которая отслеживает, из которых были уже замечены объекты. Основанные на идентификационных данных карты также используются, чтобы поддержать отображения объекта к метаинформации в динамических отладчиках и подобных системах. Наконец, основанные на идентификационных данных карты полезны в срыве "атакам имитации", следующим преднамеренно извращенного, равняется методам. (IdentityHashMap никогда не вызывает, равняется методу на его ключах.) Дополнительное преимущество этой реализации - то, что это быстро.