Рубрики
Без рубрики

Массивы Java – java.util.Массивы

Массивы Java, java.util.Массивы, массивы java util, класс массивов Java, заполнение массивов java, двоичный поиск массивов Java, сортировка массивов Java, сравнение массивов в коде java

Автор оригинала: Pankaj Kumar.

Класс Java Arrays состоит исключительно из статических методов, которые работают с массивом.

Массивы Java

  1. Класс массивов Java был представлен в Java 1.2 в качестве служебного класса для выполнения различных распространенных операций с массивами в java.
  2. Этот класс является частью java collections framework .
  3. Класс массивов Java содержит методы сортировки, поиска и сравнения массивов.
  4. Класс Arrays также содержит статический метод, который возвращает список, поддерживаемый указанным массивом.
  5. Класс 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