Assuming:
val l1 = List(1,2,3)
val l2 = List(2,3,1)
I want a method that confirms that l1 is equal to l2 (as in same contents but differen
While
l1.sorted == l2.sorted
is correct, it's runtime performance is O(n log n), because of the sorting. For large lists, you are probably better with
l1.groupBy(identity) == l2.groupBy(identity)
which should be O(n), assuming a decent implementation of groupBy.
If what you want is "these lists contain the same elements, irrespective of order or repetitions":
l1.toSet == l2.toSet
If what you want is "these lists contain the same elements, and with the same number of repetitions of each":
l1.sorted == l2.sorted
If what you want is "these lists contain the same elements and are the same size, but the number of repetitions of a given element can differ between the two lists":
l1.size == l2.size && l1.toSet == l2.toSet