У меня есть два списка массивов.
Как легко сравнить равенство их с Java 8 и его функциями без использования внешних библиотек? Я ищу "лучшее" (более высокое, более короткое, более эффективное) решение, чем такой код грубой силы (непроверенный код, может содержать опечатки и т.д., А не вопрос):
boolean compare(List<String[]> list1, List<String[]> list2)
{
// tests for nulls etc omitted
if(list1.size() != list2.size()) {
return false;
}
for(i=0; i<list1.size(); ++i) {
if(!Arrays.equals(list1.get(i), list2.get(i))) {
return false;
}
}
return true;
}
Или, если нет лучшего способа, это правильный ответ.
Бонус: если Java 9 предлагает еще лучший способ, который предлагает whaterver Java 8, не стесняйтесь также упоминать об этом.
Изменить: После просмотра комментариев и просмотра того, как этот вопрос стал умеренно горячим, я думаю, что "лучше" должно включать в себя первую проверку длины всех массивов, прежде чем проверять содержимое массива, потому что у этого есть возможность найти неравенство намного быстрее, если внутренние массивы длинны.