Автор оригинала: 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 Listlist = 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