Автор оригинала: Pankaj Kumar.
Класс Java Arrays состоит исключительно из статических методов, которые работают с массивом.
Массивы Java
- Класс массивов Java был представлен в Java 1.2 в качестве служебного класса для выполнения различных распространенных операций с массивами в java.
- Этот класс является частью java collections framework .
- Класс массивов Java содержит методы сортировки, поиска и сравнения массивов.
- Класс Arrays также содержит статический метод, который возвращает список, поддерживаемый указанным массивом.
- Класс Arrays содержит перегруженные методы, поддерживающие примитивные типы данных. Эти методы являются:
Примеры массивов Java
Давайте рассмотрим пример методов массивов с помощью некоторых программ.
Java Массивы в списке
Массивы Java предоставляют метод asList, который возвращает список, поддерживаемый указанным массивом. Ниже приведена простая программа для отображения массива в виде списка.
package com.journaldev.examples;
import java.util.Arrays;
import java.util.List;
/**
* Java Arrays Example Program
*
* @author pankaj
*
*/
public class ArraysAsListExample {
public static void main(String[] args) {
String[] strings = {"one", "two", "three", "four", "five"};
// strings array is converted into a List
List list = Arrays.asList(strings);
System.out.println(list);
}
}
Результатом вышеуказанной программы является:
[one, two, three, four, five]
Сортировка массивов Java
Массивы Java предоставляют метод сортировки, который сортирует элемент указанного массива, а также сортирует указанный диапазон данного массива в порядке возрастания. Ниже приведена простая программа для сортировки массивов на java.
package com.journaldev.examples;
import java.util.Arrays;
/**
* Java Arrays Example Program
*
* @author pankaj
*
*/
public class ArraysSortExample {
public static void main(String[] args) {
// Sorting Character
char[] chars = {'B', 'D', 'C', 'A', 'E'};
Arrays.sort(chars);
System.out.print("Sorted Characters : ");
for (char character : chars) {
System.out.print(character+" ");
}
// Sorting Integer
int[] integers = {5, 2, 1, 4, 3};
Arrays.sort(integers);
System.out.print("\nSorted Integers : ");
for (int i : integers) {
System.out.print(i+" ");
}
// Sorting Specific Range of Integers
int[] ints = {5, 2, 1, 4, 3, 9, 6, 8, 7, 10};
int fromIndex = 2;
int toIndex = 7;
Arrays.sort(ints, fromIndex, toIndex);
System.out.print("\nSorted Integers of Specific Range : ");
for (int i : ints) {
System.out.print(i+" ");
}
}
}
Результатом вышеуказанной программы является:
Sorted Characters : A B C D E Sorted Integers : 1 2 3 4 5 Sorted Integers of Specific Range : 5 2 1 3 4 6 9 8 7 10
Двоичный поиск массивов Java
Метод бинарного поиска массивов Java использует алгоритм двоичного поиска для поиска указанного значения из элементов указанного массива, а также для поиска из указанного диапазона данного массива.
package com.journaldev.examples;
import java.util.Arrays;
/**
* Java Arrays binarySearch
*
* @author pankaj
*
*/
public class ArraysBinarySearchExample {
public static void main(String[] args) {
// Searching a value from array of integer
int[] integers = { 5, 2, 1, 4, 3, 9, 6, 8, 7, 10 };
int index = Arrays.binarySearch(integers, 2);
if (index >= 0) {
System.out.println("Element is found at the index :" + index);
} else {
System.out.println("Element is not found");
}
// Searching a value from array of integer with specific range
int fromIndex = 2;
int toIndex = 7;
int index2 = Arrays.binarySearch(integers, fromIndex, toIndex, 9);
if (index2 >= 0) {
System.out.println("Element is found at the index :" + index2);
} else {
System.out.println("Element is not found");
}
}
}
Результатом вышеуказанной программы является:
Element is found at the index :1 Element is found at the index :5
Массивы Java равны
Массивы Java предоставляют метод equals, который используется для сравнения двух массивов одного типа и возвращает логический результат. Он возвращает значение true, если два заданных массива равны друг другу.
Ниже приведена простая программа для сравнения массивов.
package com.journaldev.examples;
import java.util.Arrays;
/**
* Java Arrays Example Program
*
* @author pankaj
*
*/
public class ArraysEqualExample {
public static void main(String[] args) {
// Compare two arrays of type integer which are equal
int[] a1 = { 1, 2, 3 };
int[] a2 = { 1, 2, 3 };
boolean equal = Arrays.equals(a1, a2);
if (equal) {
System.out.println("Arrays a1 and a2 are equal with Result : " + equal);
}else {
System.out.println("Arrays a1 and a2 are not equal with Result : " + equal);
}
// Compare two arrays of type integer which are not equal
int[] b1 = { 1, 2, 3 };
int[] b2 = { 4, 5, 6 };
boolean equal1 = Arrays.equals(b1, b2);
if (equal1) {
System.out.println("Arrays b1 and b2 are equal with Result : " + equal1);
}else {
System.out.println("Arrays b1 and b2 are not equal with Result : " + equal1);
}
}
}
Результаты вышеприведенной программы приведены ниже.
Arrays a1 and a2 are equal with Result : true Arrays b1 and b2 are not equal with Result : false
Сравнение Вложенных Массивов
Что делать, если массив находится внутри другого массива? Будет ли метод Arrays equal способен сравнивать вложенные массивы?
Давайте взглянем на приведенный ниже пример программы.
package com.journaldev.examples;
import java.util.Arrays;
/**
* Java Arrays Example Program
*
* @author pankaj
*
*/
public class ArraysNestedArrayExample {
public static void main(String[] args) {
// Compare two nested arrays of type integer which are equal
int[] a1 = { 1, 2, 3 };
int[] a2 = { 1, 2, 3 };
Object[] b1 = {a1};
Object[] b2 = {a2};
boolean equal = Arrays.equals(b1, b2);
if (equal) {
System.out.println("Arrays b1 and b2 are equal with Result : " + equal);
} else {
System.out.println("Arrays b1 and b2 are not equal with Result : " + equal);
}
}
}
Результатом вышеуказанной программы является:
Arrays b1 and b2 are not equal with Result : false
Мы видим, что вывод программы является ложным, несмотря на то, что два массива равны и содержат одинаковое количество элементов. На самом деле метод equal не может сравнивать вложенные массивы, для этого у массивов есть другой метод, называемый deepEquals.
Давайте взглянем на приведенный ниже пример программы.
package com.journaldev.examples;
import java.util.Arrays;
/**
* Java Arrays Example Program
*
* @author pankaj
*
*/
public class ArraysNestedArrayExample {
public static void main(String[] args) {
// Compare two nested arrays of type integer which are equal
int[] a1 = { 1, 2, 3 };
int[] a2 = { 1, 2, 3 };
Object[] b1 = {a1};
Object[] b2 = {a2};
boolean equal = Arrays.deepEquals(b1, b2);
if (equal) {
System.out.println("Arrays b1 and b2 are equal with Result : " + equal);
} else {
System.out.println("Arrays b1 and b2 are not equal with Result : " + equal);
}
}
}
Вывод вышеуказанных массивов равен программе:
Arrays b1 and b2 are equal with Result : true
Это все для класса массивов java, я надеюсь, что здесь не пропущено ничего важного.
Ссылка: API Doc