Как сравнить два массива java
Перейти к содержимому

Как сравнить два массива java

4.16. Java примеры – Как сравнить два массива

В следующем примере используется метод equals(), чтобы сравнить два массива в Java.

import java.util.Arrays; public class Main < public static void main(String[] args) throws Exception < int[] ary = ; int[] ary1 = ; int[] ary2 = ; System.out.println("Массив1 равен массиву 2? " +Arrays.equals(ary, ary1)); System.out.println("Массив1 равен массиву 3? " +Arrays.equals(ary, ary2)); > > 

Результат

Вышеприведенный пример кода даст следующий результат:

Массив1 равен массиву 2? true Массив1 равен массиву 3? false 

Оглавление

  • 1. Java примеры – Использование кода на практике
  • 2. Java примеры – Окружающая среда
  • 2.1. Java примеры – Скомпилировать файл
  • 2.2. Java примеры – Установить путь к нескольким классам
  • 2.3. Java примеры – Отладка java-файла
  • 2.4. Java примеры – Установить путь к классу
  • 2.5. Java примеры – Просмотреть текущий путь класса
  • 2.6. Java примеры – Установить назначение файла класса
  • 2.7. Java примеры – Запустить скомпилированный java-файл класса
  • 2.8. Java примеры – Узнать версию Java
  • 2.9. Java примеры – Установить путь к классу в .jar-файле или .zip-файле
  • 3. Java примеры – Строки
  • 3.1. Java примеры – Сравнить две строки
  • 3.2. Java примеры – Найти последнее вхождение подстроки внутри подстроки
  • 3.3. Java примеры – Удалить нужный символ из строки
  • 3.4. Java примеры – Заменить символ в строке
  • 3.5. Java примеры – Вывод в обратном порядке
  • 3.6. Java примеры – Нахождение символа или слова в строке
  • 3.7. Java примеры – Разбиение строки на слова и символы
  • 3.8. Java примеры – Преобразование строки в верхний регистр
  • 3.9. Java примеры – Найти слово в строке
  • 3.10. Java примеры – Сравнить производительность создания строки
  • 3.11. Java примеры – Оптимизировать создание строк
  • 3.12. Java примеры – Форматирование строк
  • 3.13. Java примеры – Конкатенация строк
  • 3.14. Java примеры – Определить код Юникода символа в строке
  • 3.15. Java примеры – Буферизация строк
  • 4. Java примеры – Массивы
  • 4.1. Java примеры – Сортировка массива и поиск элемента
  • 4.2. Java примеры – Метод сортировки массива, вставить элемент в массив
  • 4.3. Java примеры – Размер двумерного массива
  • 4.4. Java примеры – Обратный порядок массива, переворачиваем массив
  • 4.5. Java примеры – Как выводить массивы и двумерные массивы в консоль
  • 4.6. Java примеры – Найти максимальный и минимальный элемент массива
  • 4.7. Java примеры – Соединить два массива в один
  • 4.8. Java примеры – Как заполнить массив числами
  • 4.9. Java примеры – Увеличить массив после инициализации
  • 4.10. Java примеры – Сравнение двух массивов
  • 4.11. Java примеры – Удаление элемента из массива
  • 4.12. Java примеры – Удаление массива из другого массива
  • 4.13. Java примеры – Одинаковые элементы массивов
  • 4.14. Java примеры – Поиск в массиве
  • 4.15. Java примеры – Равенство двух массивов
  • 4.16. Java примеры – Сравнить массивы
  • 5. Java примеры – Дата и время
  • 5.1. Java примеры – Форматирование времени в формате AM-PM
  • 5.2. Java примеры – Получение названия и номера текущего месяца
  • 5.3. Java примеры – Получить текущее время в часах и минутах
  • 5.4. Java примеры – Вывести текущее время и дату
  • 5.5. Java примеры – Вывести текущее время в 24-часовом формате
  • 5.6. Java примеры – Получить текущий месяц
  • 5.7. Java примеры – Получить текущие секунды
  • 5.8. Java примеры – Получить короткое название месяца
  • 5.9. Java примеры – Получить день недели
  • 5.10. Java примеры – Добавление времени к дате
  • 5.11. Java примеры – Отображение времени в формате другой страны
  • 5.12. Java примеры – Отображение времени на разных языках
  • 5.13. Java примеры – Прокрутить часы и месяцы
  • 5.14. Java примеры – Получить номер недели и месяц в году
  • 5.15. Java примеры – Форматы текущей даты
  • 6. Java примеры – Методы
  • 6.1. Java примеры – Перезагрузка методов
  • 6.2. Java примеры – Вывод массива с использованием метода
  • 6.3. Java примеры – Решение Ханойской башни
  • 6.4. Java примеры – Последовательность чисел Фибоначчи
  • 6.5. Java примеры – Вычисление факториала числа
  • 6.6. Java примеры – Переопределение метода
  • 6.7. Java примеры – Вывод массива с использованием метода
  • 6.8. Java примеры – Использование оператора break
  • 6.9. Java примеры – Использование оператора continue
  • 6.10. Java примеры – Использование метки в методе
  • 6.11. Java примеры – Использование операторов enum и switch
  • 6.12. Java примеры – Использование конструктора enum

Как сравнить два массива java

Чтобы сравнить два массива в Java, можно использовать статический метод equals() класса Arrays . Он возвращает true , если два массива эквивалентны и false в другом случае.

String[] animals1 = "cat", "dog">; String[] animals2 = "cat", "dog">; Arrays.equals(animals1, animals2); // true String[] fruits = "apple", "pear">; Arrays.equals(animals1, fruits); // false 

Сравните два массива строк на равенство в Java

Этот пост проверит, равны ли два строковых массива в Java. Два массива строк считаются равными, если оба массива имеют одинаковую длину и содержат одни и те же элементы в одном и том же порядке.

1. Сравнение одномерных массивов

Наивное решение — написать собственный метод проверки массива строк на равенство.

class Main
public static boolean checkEquality ( String [ ] s1 , String [ ] s2 )
if ( s1 == s2 ) < return true ; if ( s1 == null || s2 == null ) < return false ; int n = s1 . length ; if ( n != s2 . length ) < return false ; for ( int i = 0 ; i < n ; i ++ ) if ( ! s1 [ i ] . equals ( s2 [ i ] ) ) < return false ; return true ; public static void main ( String [ ] args ) String [ ] s1 = < "A" , "B" , "C" >;
String [ ] s2 = < "A" , "B" , "C" >;
if ( checkEquality ( s1 , s2 ) ) < System . out . println ( "Both arrays are equal" ) ; System . out . println ( "Both arrays are not equal" ) ;

результат:

Both arrays are equal

Вот эквивалентная версия с использованием Stream API.

import java . util . stream . IntStream ;
class Main
public static boolean checkEquality ( String [ ] s1 , String [ ] s2 )
if ( s1 == s2 ) < return true ; if ( s1 == null || s2 == null || s1 . length != s2 . length ) < return false ; return IntStream . range ( 0 , s1 . length ) . allMatch ( i -> s1 [ i ] . equals ( s2 [ i ] ) ) ;
public static void main ( String [ ] args )
String [ ] s1 = < "A" , "B" , "C" >;
String [ ] s2 = < "A" , "B" , "C" >;
if ( checkEquality ( s1 , s2 ) ) < System . out . println ( "Both arrays are equal" ) ; System . out . println ( "Both arrays are not equal" ) ;

результат:

Both arrays are equal

The java.util.Arrays класс предоставляет два удобных метода для сравнения массивов — equals() а также deepEquals() . Мы можем использовать любой метод для сравнения строковых массивов.

import java . util . Arrays ;
class Main
public static void main ( String [ ] args )
String [ ] s1 = < "A" , "B" , "C" >;
String [ ] s2 = < "X" , "Y" , "Z" >;
if ( Arrays . equals ( s1 , s2 ) ) < System . out . println ( "Both arrays are equal" ) ; System . out . println ( "Both arrays are not equal" ) ;

результат:

Both arrays are not equal

2. Сравнение многомерных массивов

Как и в случае с одномерными массивами, мы можем написать собственный метод проверки равенства многомерных массивов.

class Main
public static boolean checkEquality ( String [ ] [ ] s1 , String [ ] [ ] s2 )
if ( s1 == s2 ) < return true ; if ( s1 == null || s2 == null ) < return false ; int n = s1 . length ; if ( n != s2 . length ) < return false ; for ( int i = 0 ; i < n ; i ++ ) if ( s1 [ i ] . length != s2 [ i ] . length ) < return false ; for ( int j = 0 ; j < s1 [ i ] . length ; j ++ ) if ( ! s1 [ i ] [ j ] . equals ( s2 [ i ] [ j ] ) ) < return false ; return true ; public static void main ( String [ ] args ) String [ ] [ ] s1 = String [ ] [ ] s2 = if ( checkEquality ( s1 , s2 ) ) < System . out . printf ( "Both arrays are equal" ) ; System . out . printf ( "Both arrays are not equal" ) ;

результат:

Both arrays are not equal

Arrays.equals() метод не будет работать для многомерных массивов. Мы должны использовать Arrays.deepEquals() метод вместо этого.

import java . util . Arrays ;
class Main
public static void main ( String [ ] args )
String [ ] [ ] s1 =
String [ ] [ ] s2 =
System . out . println ( «equals() returns » + Arrays . equals ( s1 , s2 ) ) ;
System . out . println ( «deepEquals() returns » + Arrays . deepEquals ( s1 , s2 ) ) ;

результат:

equals() returns false
deepEquals() returns true

Это все о сравнении двух строковых массивов на равенство в Java.

Оценить этот пост

Средний рейтинг 5 /5. Подсчет голосов: 7

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂

Подписывайся
1 Комментарий
Большинство голосов
Новейшие Самый старый
Встроенные отзывы
Просмотреть все комментарии
Просмотр комментариев
Загрузить больше комментариев
Просматривать
Подпишитесь на новые публикации

  • Все проблемы
  • Практика DSA
  • 100 самых популярных задач
  • 50 лучших классических задач
  • Лучшие алгоритмы
  • Компилятор С/С++
  • Компилятор Java
  • Компилятор Python
  • Компилятор JavaScript
  • компилятор PHP
  • Компилятор C#
  • Свяжитесь с нами
  • Политика конфиденциальности
  • условия обслуживания
  • Подпишитесь на новые публикации

Techie Delight © 2023 Все права защищены.

Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно

Java. Сравнение массивов

Здравствуйте, подскажите как можно сравнить 2 массива? Есть код, в нем 2 одинаковых массива, но условие не проходит.

package VarA; public class Task4 < public static void main(String[] args)< String[] password = ; if(args.equals(password)) System.out.println("Пароль верный"); else < System.out.println("Пароль неверный"); >for(int i = 0; i < args.length; i++) System.out.print(args[i]); System.out.println(); for(int i = 0; i < password.length; i++) System.out.print(password[i]); >> 

Отслеживать
71.3k 12 12 золотых знаков 91 91 серебряный знак 180 180 бронзовых знаков
задан 5 ноя 2016 в 9:26
101 2 2 золотых знака 2 2 серебряных знака 10 10 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

array1.equals(array2) тоже самое, что и array1 == array2 , сравниваются адреса, а не содержимое.

Вам нужно использовать Arrays.equals(array1, array2) для сравнения, т.е.

if(Arrays.equals(args, password))  

Отслеживать
ответ дан 5 ноя 2016 в 9:49
Алексей Шиманский Алексей Шиманский
71.3k 12 12 золотых знаков 91 91 серебряный знак 180 180 бронзовых знаков

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.29.1725

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *