Kotlin проверить, одинаковы ли два списка, кроме одного списка, имеющего дополнительный элемент? - PullRequest
1 голос
/ 16 апреля 2020

Итак, у меня есть список A и список B.
A имеет размер n, а B имеет размер n + 1.
Мне нужно знать, все ли элементы в A совпадают со всеми элементами в B. sublist (0, n - 1).

A: [5,7,2,9]  
B: [5,7,2,9,1]
true

A: [5,7,2,9]  
B: [5,7,2,9,9]
true

A: [7,5,2,9]  
B: [5,7,2,9,1]
false (order matters)

Есть ли какие-нибудь элегантные способы сделать это с помощью библиотечных функций?

Ответы [ 3 ]

1 голос
/ 16 апреля 2020

List имеет метод subList, поэтому вы можете express напрямую выполнить ваши условия:

(b.size() == a.size() + 1) && (b.subList(0, a.size()).equals(a))
0 голосов
/ 16 апреля 2020

Пока b не может быть пустым, вы можете написать:

return a == b.dropLast(1)
0 голосов
/ 16 апреля 2020

Очень простое решение:

return B.take(A.size+1) == A
...