Сравнение двух таблиц в Java
В Java можно сравнивать два массива, сравнивая каждый элемент массива. Класс Arrays предоставляет методы, которые могут быть полезны для выполнения сравнения двух массивов в Java.
Мы узнаем, как сравнивать два массива в Java с помощью метода Arrays.equals() и Arrays.deepEquals()with examples.
Два массива равны, если они имеют:
- Одинаковый тип.
- Одинаковое количество элементов.
- Каждая пара элементов в обоих массивах равна.
- Порядок элементов должен быть одинаковым.
Arrays предоставляет метод equals() для сравнения двух таблиц. Его принцип заключается в сравнении элементов двух массивов с помощью метода traverse. public static boolean equals(int[] a1, int[] a2)
Метод равно возвращает true если элементы массива равны, иначе false.
Example:
import java.util.Arrays;Runtime:
public class равно
{
public static void main (String[] args)
{
// таблицы для сравнения
int[] array1 = new int[] {1, 2, 3, 4, 5};
int[] array2 = new int[] {1, 2, 3, 4, 5};
int[] array3 = new int[] {1, 2, 2, 4, 5};
//сравниваем массивы array1 и array2 с equals
if method(Arrays.equals(array1, array2))
System.out.println("Массивы равны");
else
System.out.println("Массивы не равны.");
// сравниваем array1 с array3
if (Arrays.equals(array1, array3))
System.out.println("Массивы равны");
else
System.out.println("Массивы не равны.");
}
}
Массивы равны
Массивы не равны.
Метод Arrays.equals() сравнивает элементы двух массивов.
Примечание: если два массива содержатся в разных объектах, но имеют одинаковые значения, то они не равны, как показано в примере ниже.
public class comparisonArrays2
{
public static void main (String[] args)
{
// таблицы для сравнения
String[] array1 = new String[] {"a", "b", "c", "d"};
String[] array2 = new String[] {"a", "b", "c", "d"};
Объект[] arrayObj1 = {array1};
Object[] arrayObj2 = {array2};
// сравниваем arrayObj1 и arrayObj2
if (Arrays.equals(arrayObj1, arrayObj2))
System.out.println("Массивы равны");
else
System.out.println("Массивы не равны.");
}
}
Execution:
Массивы не равны.
Мы видим, что Arrays.equals() не может сделать более глубокое сравнение, и для решения этой проблемы нужно использовать метод deepEquals().
Класс Arrays.deepEquals()
Класс Arrays предоставляет другой, более эффективный метод для более глубокого сравнения содержимого массивов, как следует из названия.
public static boolean deepEquals(Object[] t1, Object[] t2)
Метод deepEquals разобрать оба массива t1 и T2 и сравнивает их. после глубокого анализа возвращает TURE, если они равны, в противном случае false.
Two arrays t1 et t2 of типа Object равны, если они имеют хотя бы одно из следующих свойств:
- t1 = t2
- equals(t2) возвращает true.
- Если t1 и t2 имеют один и тот же тип ссылки на объект, метод deepEquals(t1,t2) возвращает true.
- Если t1 и t2 имеют одинаковый примитивный тип, то метод равно(t1,t2) возвращает true.
Example:
public class comparisonArrays3
{
public static void main (String[] args)
{
// таблицы для сравнения
String[] array1 = new String[] {"java", "php", "javascript", "c++"};
String[] array2 = new String[] {"java", "php", "javascript", "c++"};
Объект[] t1 = {array1};
Объект[] t2 = {array2};
// сравниваем arrayObj1 и arrayObj2
if (Arrays.deepEquals(t1, t2))
System.out.println("Массивы равны");
else
System.out.println("Массивы не равны.");
}
}
Runtime:
Массивы равны
Ссылки: