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?
Я хотел бы знать, равны ли массивы. Я определяю равным, так как каждое значение в массиве 1 совпадает с значением в этой позиции в массиве2. Таким образом, эти два массива будут равны. Какое лучшее, почему нужно выяснить, равны ли эти два массива?
if(array1 == array2)
не является глубоким, так что это не сработает, и я не знаю, является ли цикл по каждому элементу и их сравнение является лучшим и наиболее эффективным способом решения этой проблемы. Есть ли у кого-нибудь лучшие предложения? Изменить: мне нужны равные, которые могут входить в вложенные массивы.
Grammin 11 июль 2011, в 17:45
Поделиться
Я не думаю, что в любом случае существует «для каждого» петля. Чтобы оператор if работал, вы можете определить свой собственный класс aryClass с помощью функции isEqual (). Но я знаю, что вы ищете что-то лучшее, поэтому я оставляю это как комментарий, а не как ответ.
AudioDroid 11 июль 2011, в 15:03
Поделиться:
6 ответов
Лучший ответ
Используйте Arrays.deepEquals() . Это выполняет ту же работу, что и Arrays.equals() , но также работает с вложенными массивами.
- e1 и e2 — это массивы типов ссылок объектов, а Arrays.deepEquals(e1, e2) вернет true
- e1 и e2 — массивы одного и того же примитивного типа, и соответствующая перегрузка Array.equals(e1, e2) вернет true.
- e1 == e2
- e1.equals(e2) вернет true.
Marcelo 11 июль 2011, в 15:30
Поделиться
Пожалуйста, прочитайте Arrays.deepEquals() для Arrays.deepEquals()
Op De Cirkel 11 июль 2011, в 15:01
@Op Оп Де Циркель Я прочитал это, и теперь добавил к своему ответу. Что-то не так с методом?
Marcelo 11 июль 2011, в 15:05
Не совсем, просто deepEquals() делает слишком много, если вам это не нужно (медленно, так как он должен проверять, являются ли элементы массивами). В любом случае, я отказался от понижения
Op De Cirkel 11 июль 2011, в 15:08
@Op Оп де Циркель Вы правы насчет накладных расходов, но ОП не указывает, какие элементы находятся в массивах. Я думаю, что это только часть ответа на вопрос.
Marcelo 11 июль 2011, в 15:11
+1 Да, в зависимости от того, что вы хотите, Arrays.equals() или Arrays.deepEquals делает это.
Paŭlo Ebermann 11 июль 2011, в 15:13
Я был в состоянии сделать уникальный идентификатор класса / метода / строки / объекта на основе stacktrace, и это, спасибо!
Aquarius Power 12 нояб. 2014, в 23:03
Показать ещё 4 комментария
/** * Returns true if the two specified arrays of Objects are * equal to one another. The two arrays are considered equal if * both arrays contain the same number of elements, and all corresponding * pairs of elements in the two arrays are equal. Two objects e1 * and e2 are considered equal if (e1==null ? e2==null * : e1.equals(e2)). In other words, the two arrays are equal if * they contain the same elements in the same order. Also, two array * references are considered equal if both are null. * * @param a one array to be tested for equality. * @param a2 the other array to be tested for equality. * @return true if the two arrays are equal. */ public static boolean equals(Object[] a, Object[] a2)
adarshr 11 июль 2011, в 15:10
Поделиться
@Downvoter: почему?
adarshr 11 июль 2011, в 15:40
Чтобы сравнить массивы, я бы использовал метод Arrays.equals:
if (Arrays.equals(array1, array2)) < // array1 and array2 contain the same elements in the same order >
Как сравнить два массива java
Нравится ресурс?
Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java , а не JavaScript ! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java . В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).
3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
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.9k 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.9k 12 12 золотых знаков 91 91 серебряный знак 180 180 бронзовых знаков
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.9.3159
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.