Методы для работы с массивами
В классе 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-строка будет создана правильно.