Artikel ini membahas berbagai cara untuk membandingkan dua daftar di Kotlin, yang urutan elemennya diabaikan
Misalnya, daftar [4, 1, 5]
dan [1, 4, 5]
dianggap sama, dan daftar [4, 1, 5]
dan [5, 4, 3]
tidak dianggap sama. Ukuran kedua daftar harus sama. Oleh karena itu, daftar [4, 1, 5, 4]
dan [1, 4, 5, 1]
tidak dianggap sama
Solusi yang masuk akal adalah mengurutkan kedua daftar dan kemudian membandingkannya menggunakan operator ==
. Implementasi tipikal dari pendekatan ini akan terlihat seperti di bawah ini. Kode dengan anggun menangani input nol dan juga memeriksa apakah ukuran kedua daftar sama atau tidak sebelum menyortir. Solusinya tidak merusak urutan asli dari kedua daftar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
menyenangkan isEqualIgnoreOrder[x. Daftar? . , y: Daftar? . ]: Boolean {
jika [x == y] {
kembalikan benar
}
jika [x == null || y == null . x. ukuran . = y. ukuran] {
kembalikan salah
}
kembalikan x. diurutkan[]. toList[] == . .diurutkan[]. toList[]
}
menyenangkan main[] {
val x = listOf[4, 1, 5]
val y = listOf[1, 4, 5]
val isEqual = isEqualIgnoreOrder[x, y]
jika [sama dengan] {
println["Daftarnya sama"]