Иллюстрированный самоучитель по Java

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


В классе

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(); 

 } 

}


Содержание раздела