Читаем Java 7 полностью

Все методы класса Collections статические, ими можно пользоваться, не создавая экземпляры класса Collections. Методов очень много, их количество увеличивается с каждой новой версией JDK, поэтому мы перечислим только основные методы.

Как обычно в статических методах, коллекция, с которой работает метод, задается его параметром.

Сортировка может быть сделана только в упорядочиваемой коллекции, реализующей интерфейс List. Для сортировки в классе Collections есть два метода:

□ static void sort(List coll) — сортирует в естественном порядке возрастания коллекцию coll, реализующую интерфейс List;

□ static void sort(List coll, Comparator c) — сортирует коллекцию coll в порядке, заданном объектом c.

После сортировки можно осуществить бинарный поиск в коллекции:

□ static int binarySearch(List coll, Object element) — отыскивает элемент element в отсортированной в естественном порядке возрастания коллекции coll и возвращает индекс элемента или отрицательное число, если элемент не найден; отрицательное число показывает индекс, с которым элемент element был бы вставлен в коллекцию, с обратным знаком;

□ static int binarySearch(List coll, Object element, Comparator c) — то же, но коллекция отсортирована в порядке, определенном объектом c.

Четыре метода находят наибольший и наименьший элементы в упорядочиваемой коллекции:

□ static Object max(Collection coll) - возвращает наибольший в естественном поряд

ке элемент коллекции coll;

□ static Object max(Collection coll, Comparator c) — то же в порядке, заданном объектом c;

□ static Object min(Collection coll) — возвращает наименьший в естественном порядке элемент коллекции coll;

□ static Object min(Collection coll, Comparator c) — то же в порядке, заданном объектом c.

Два метода "перемешивают" элементы коллекции в случайном порядке:

□ static void shuffle(List coll) — случайные числа задаются по умолчанию;

□ static void shuffle(List coll, Random r) — случайные числа определяются объектом r.

Метод reverse (List coll) меняет порядок расположения элементов на обратный.

Метод copy(List from, List to) копирует коллекцию from в коллекцию to.

Метод fill (List coll, Object element) заменяет все элементы существующей коллекции coll элементом element.

С остальными методами класса Collections мы будет знакомиться по мере надобности.

Упражнение

3. Упорядочите коллекции, созданные в этой главе, и проделайте в них бинарный поиск.

Заключение

Итак, в данной главе мы выяснили, что язык Java предоставляет множество средств для работы с большими объемами информации. В массе случаев достаточно добавить в программу три — пять операторов, чтобы можно было проделать нетривиальную обработку информации.

В следующей главе мы рассмотрим аналогичные средства для работы с массивами, датами, для получения случайных чисел и прочих необходимых средств программирования.

Вопросы для самопроверки

1. Что называется коллекцией?

2. В чем отличие вектора от массива?

3. Что дает задание конкретного класса в шаблоне при определении коллекции?

4. В чем различие интерфейсов List и Set?

5. В чем различие интерфейсов List и Queue?

6. Что дополняет интерфейс Deque к интерфейсу Queue?

7. Зачем в Java введены интерфейсы NavigableSet и NavigableMap?

8. Что такое стек?

9. Что такое ассоциативный массив?

10. Что такое линейный список?

11. Что такое двунаправленный список?

12. Какие способы обхода коллекции вы знаете?

13. Каким классом-коллекцией лучше всего организовать очередь?

14. Когда удобнее использовать класс Vector, а когда — ArrayList?

15. Можно ли совсем отказаться от объекта iterator в пользу цикла "for-each"?

16. Какие классы-коллекции реализуют структуру данных "дерево"?

ГЛАВА 7

<p><strong>Классы-утилиты</strong></p>

В этой главе описаны средства, облегчающие работу с часто применяемыми конструкциями, в числе которых массивы, даты, случайные числа.

Работа с массивами

В классе Arrays из пакета java.util собрано множество методов для работы с массивами. Их можно разделить на несколько больших групп.

Сортировка массива

Восемнадцать статических методов класса Arrays сортируют массивы с разными типами числовых элементов в порядке возрастания чисел или просто объекты в их естественном порядке.

Восемь из них имеют простой вид:

static void sort(type[] a);

где type может быть один из семи примитивных типов: byte, short, int, long, char, float, double — или тип Object.

Восемь методов с теми же типами сортируют часть массива от индекса from включительно до индекса to исключительно:

static void sort(type[] a, int from, int to);

Оставшиеся два метода сортировки упорядочивают массив или его часть с элементами типа Object по правилу, заданному объектом c, реализующим интерфейс Comparator:

static void sort(Object[] a, Comparator c);

static void sort(Object[] a, int from, int to, Comparator c);

Бинарный поиск в массиве

После сортировки массива можно организовать в нем бинарный поиск элемента element одним из восемнадцати статических методов поиска.

Восемь методов имеют вид:

Перейти на страницу:

Все книги серии В подлиннике

Java 7
Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Ильдар Шаукатович Хабибуллин

Программирование, программы, базы данных

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных