Иллюстрированный самоучитель по Java
ГЛАВА 7
Классы-утилиты
В этой главе описаны средства, полезные
для создания программ: работа с массивами, датами, случайными числами.
Р
абота
с массивами
В классе
Arrays
из пакета
java.utii
собрано множество методов для работы
с массивами. Их можно разделить на четыре группы.
Восемнадцать статических методов
сортируют массивы с разными типами числовых элементов в порядке возрастания
чисел или просто объекты в их естественном порядке.
Восемь из них имеют простой вид
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
по правилу, заданному объектом с, реализующим интерфейс
Comparator
:
static void sort(Object[]
a, Comparator c)
static void sort(Object[]
a, int from, int to, Comparator c)
После сортировки можно организовать
бинарный поиск в массиве одним из девяти статических методов поиска. Восемь
методов имеют вид
static int binarySearch(type[]
a, type element)
где
type
— один из тех же восьми типов. Девятый метод поиска имеет вид
static
int binarySearch(Object[] a, Object element, Comparator c).
Он отыскивает элемент
element
в массиве, отсортированном в порядке, заданном объектом
с
.
Методы поиска возвращают индекс
найденного элемента массива. Если элемент не найден, то возвращается отрицательное
число, означающее индекс, с которым элемент был бы вставлен в массив в заданном
порядке, с обратным знаком.
Восемнадцать статических методов
заполняют массив или часть массива указанным значением
value
:
static
void fill(type[], type value)
static void fill(type[],
int from, int to, type value)
где
type
— один из восьми примитивных типов или тип
object
. Наконец,
девять статических логических методов сравнивают массивы:
static boolean
equals(type[] al, type[] a2)
где
type
— один из восьми примитивных типов или тип
Object
.
Массивы считаются равными, и возвращается
true
, если они имеют одинаковую длину и равны элементы
массивов с одинаковыми индексами.
В листинге 7.1 приведен простой
пример работы с этими методами.
Листинг 7.1.
Применение методов класса Arrays
import
java.utii.*;
class ArraysTest{
public static
void main(String[] args){
int[] a = {34,
-45, 12, 67, -24, 45, 36, -56};
Arrays.sort(a)
;
for (int i = 0;
i < a.length; i++)
System.out.print
(a[i]. + " ");
System.out.println();
Arrays.fill(a,
Arrays.binarySearch(a, 12), a.length, 0);
for (int i =
6; i < a.length; i++)
System.out.print(a[i]
+ " ");
System.out.println();
}
}