Методы для работы с массивами

В классе Arrays из пакета java.util собрано много методов, облегчающих работу с массивами. Эти методы можно разделить на следующие группы:

1. заполнение всего массива nameMassiv[] или его части (from…to) указанным значением value:

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

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

где type – один из восьми типов byte, short, int, long, char, float, double, Object.

Пример:

int myVector[]=new int[10];

System.out.println(“Исходный вектор:”);

Arrays.fill(myVector, 5);// вызов метода заполнения массива

For (int value: myVector)

System.out.printf(“%5d”, value);

В окне вывода появится:

Исходный вектор:

5 5 5 5 5 5 5 5 5 5

2. сортировка всего массива или его части по возрастанию:

static void sort(type nameMassiv[]);

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

Пример:

int myVector[]=new int[10]{9,8,7,6,5,4,3,2,1,0};

System.out.println(“Исходный вектор:”);

For (int value: myVector)

System.out.printf(“%5d”, value);

Arrays.sort(myVector); // вызов метода сортировки

System.out.println(“Отсортированный вектор:”);

For (int value: myVector)

System.out.printf(“%5d”, value);

В окне вывода появится:

Исходный вектор:

9 8 7 6 5 4 3 2 1 0

Отсортированный вектор:

0 1 2 3 4 5 6 7 8 9

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

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

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

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

4. сравнение массивов:

static boolean equals(type nameMassiv_1[],type nameMassiv_2[]);

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

static boolean deepEquals(Object nameMassiv_1[],Object nameMassiv_2[]);

5. представление массива строкой:

static String toString(type nameMassiv[]);

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

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

static String deepToString(Object nameMassiv[]);

Строки

Строки в Java – это экземпляры классов, объекты. Для работы с ними используются два класса: String и StringBuffer. Поэтому с формальной точки зрения создание текста (строк) сводится к созданию объекта одного из этих классов. Основное различие между этими классами состоит в том, что объекты класса String изменять нельзя, а объекты класса StringBuffer – можно.

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

Класс String

Создать строку текста класса String можно оператором присваивания:

String text=”Это текстовая строка”;

При этом создается объектная переменная (ссылка) text на объект с текстом. Если изменить этот текст:

String text=”Это новая текстовая строка”;

То создается новый объект с новым текстом, на который сейчас будет указывать ссылка text. Старый объект со старым текстом остается в памяти компьютера до “уборки мусора”. При этом создается полная иллюзия того, что мы работаем с одной и той же строкой.

Создать строку текста можно также с помощью многочисленных конструкторов класса String:

1. создание пустой строки:

String text=new String();

создана пустая строка text;

2. создание копии объекта-строки:

String text=”Это текстовая строка”;

String newText=new String(text);

создан новый объект-строка newText с таким же содержанием, как и объект text;

3. создание новой строки на основе символьного массива:

char symbols[]={‘J’, ‘a’, ‘v’, ‘a’};

String text=new String(symbols);

создан новый объект-строка text с содержанием “Java”,

4. создание новой строки на основе массива байтов:

byte nums[]={65, 66, 67, 68};

String text=new String(nums);

создан новый объект-строка text с содержанием “ABCD” (используются ASCII -коды символов). Такая ситуация возникает при чтении ASCII-файлов, извлечении информации из базы данных или при передаче информации по сети. Если исходный кириллический ASCII-файл (ASCII-текст) был в кодировке CP-1251 (windows 1251), то JAVA-строка будет создана правильно.

Наши рекомендации