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

static int binarySearch(type[] a, type element);

где type один из семи примитивных типов (byte, short, int, long, char, float, double)

или тип Object.

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

static int binarySearch(type[] a, int from, int to, type element);

Оставшиеся два метода поиска применяют настраиваемые типы и имеют более сложный вид:

static int binarySearch(T[] a, T element, Comparator c); static int binarySearch(T[] a, int from, int to, T element,

Comparator c);

Они отыскивает элемент element в массиве или его части, отсортированном в порядке, заданном объектом c.

Методы поиска возвращают индекс найденного элемента массива. Если элемент не найден, то возвращается отрицательное число, абсолютная величина которого означает индекс, с которым элемент был бы вставлен в массив в заданном порядке.

Заполнение массива

Восемнадцать статических методов класса Arrays заполняют массив или часть массива указанным значением value:

static void fill(type[], type value);

static void fill(type[], int from, int to, type value);

где type-один из восьми примитивных типов или тип Object.

Копирование массива

Восемь методов класса Arrays, написанных для всех примитивных типов, обозначенных здесь словом type:

static type[] copyOf(type[] a, int newLength);

копируют массив a, возвращая ссылку на копию массива. Они обрезают массив a до длины newLength, если newLength меньше длины массива a, или дополняют массив нулями, если его длина меньше newLength.

Следующий метод использует настраиваемый тип:

static T[] copyOf(T[] a, int newLength);

Еще один метод копирования позволяет изменить тип массива:

static T[] copyOf(U[] a, int newLength, Class newType);

При несовместимости старого и нового типов возникает исключительная ситуация.

Часть массива, начиная от элемента с индексом from и заканчивая перед элементом с индексом to, можно скопировать одним из десяти методов copyOfRange (). Восемь из них написаны для примитивных типов. Они имеют вид:

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

Индекс to может оказаться больше длины массива, в таком случае массив-копия будет дополнен нулями.

Девятый метод использует настраиваемый тип массива:

static T[] copyOfRange(T[] a, int newLength, int from, int to);

Десятый метод может изменить тип копируемого массива:

static T[] copyOfRange(U[] a, int from, int to, Class newType);

При несовместимости старого и нового типов возникает исключительная ситуация.

Сравнение массивов

Девять статических логических методов класса Arrays сравнивают массивы:

static boolean equals(type[] a1, type[] a2);

где type-один из восьми примитивных типов или тип Object.

Массивы считаются равными и возвращается true, если они имеют одинаковую длину, и равны все элементы массивов с одинаковыми индексами.

Еще один метод сравнения массивов:

static boolean deepEquals(Object[] a1, Object[] a2);

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

Представление массива строкой

Девять статических методов класса Arrays преобразуют массив в строку:

static String toString(type[] a);

где type-один из восьми примитивных типов или тип Object.

В формируемой строке массив записывается в квадратных скобках, а его элементы перечисляются через запятую и пробел. Каждый элемент преобразуется в строку методом String.valueOf (type).

Еще один метод преобразования массива в строку:

static String deepToString(Object[] a);

применяется для преобразования многомерных массивов. Он рекурсивно просматривает их подмассивы с любым количеством индексов.

Получение хеш-кода массива

Девять статических методов класса Arrays вычисляют хеш-код массива:

static int hashCode(type[] a);

где type один из восьми примитивных типов или тип Object.

Сначала массив представляется списком типа List, а затем вычисляется хеш-код списка методом List.hashCode ().

Еще один метод:

static int deepHashCode(Object[] a);

применяется для вычисления хеш-кода многомерных массивов. Он просматривает их подмассивы с любым количеством индексов.

В листинге 7.1 приведен простой пример работы с некоторыми из методов класса

Arrays.

Листинг 7.1. Применение методов класса Arrays

import java.util.*; class ArraysTest{

public static void main(String[] args){

int[] a = {34, -45, 12, 67, -24, 45, 36, -56}; Arrays.sort(a);

for (int i: a)

System.out.print(a[i] + " ");

System.out.println();

Arrays.fill(a, Arrays.binarySearch(a, 12), a.length, 0);

for (int i: a)

System.out.print(a[i] + " ");

System.out.println();

}

}

Локальные установки

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

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

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.

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

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