Arrays do not override the implementation Object equals, therefore, since it list.contains()uses equalsto determine if an element appears in List, it will return true only if you are looking for the exact array object added to List. Therefore, it list.contains(arr[1])will return true, but list.contains(temp)it will not, because tempthey arr[1]are different objects (although they contain the same elements).
List<List<Integer> List<int[]>, list.contains() , ( List Object equals).