Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何判断Kotlin中两个数组是否具有相同的信息但顺序不同_Kotlin - Fatal编程技术网

如何判断Kotlin中两个数组是否具有相同的信息但顺序不同

如何判断Kotlin中两个数组是否具有相同的信息但顺序不同,kotlin,Kotlin,假设我有一些数组: val a = arrayOf("Pushups", "Benchpress", "Squats") val b = arrayOf("Pushups", "Squats", "Benchpress") val c = arrayOf("Pushups", "Squats", "Sit Ups") 我主要想创建一个函数,以查看两个数组是否具有相同的信息,即使它们的顺序不同: checkSameInfo(a,b) //Should return true checkSameI

假设我有一些数组:

val a = arrayOf("Pushups", "Benchpress", "Squats")
val b = arrayOf("Pushups", "Squats", "Benchpress")
val c = arrayOf("Pushups", "Squats", "Sit Ups")
我主要想创建一个函数,以查看两个数组是否具有相同的信息,即使它们的顺序不同:

checkSameInfo(a,b) //Should return true
checkSameInfo(a,c) //Should return false
除了使用大量for循环之外,还有其他方法可以做到这一点吗

在学习kotlin的最后两个月里,StackOverflow提供了极大的帮助,因此感谢所有回复的人:)


希望这有帮助

我只是将它们转换为集合,然后检查内容是否相等。像这样:

fun <T> checkSameInfo(arr1: Array<T>, arr2: Array<T>) = arr1.toSet() == arr2.toSet()

谢谢,这正是我需要的!它将它们按字母顺序排列,我相信这比转换成一个集合并检查是否相等效果要差。排序是
O(n*logn)
,而转换为集合则是
O(n)
fun <T> checkSameInfo(arr1: Array<T>, arr2: Array<T>) = arr1.toSet() == arr2.toSet()
fun <T> checkSameInfo(list1: List<T>, list2: List<T>) = 
    list1.containsAll(list2) && list2.containsAll(list1)