📌  相关文章
📜  检查两个列表是否相等java(1)

📅  最后修改于: 2023-12-03 15:10:51.560000             🧑  作者: Mango

Java代码片段:检查两个列表是否相等

在Java中,有时我们需要比较两个列表是否相等。下面是一个演示如何检查两个列表是否相等的Java代码片段。

public class CompareLists {
    
    public static boolean compareLists(List<String> list1, List<String> list2) {
        if (list1 == null && list2 == null) {
            return true;
        } else if (list1 == null || list2 == null || list1.size() != list2.size()) {
            return false;
        } else {
            return list1.containsAll(list2) && list2.containsAll(list1);
        }
    }
    
    public static void main(String[] args) {
        // 测试用例1
        List<String> list1 = new ArrayList<>(Arrays.asList("a", "b", "c"));
        List<String> list2 = new ArrayList<>(Arrays.asList("a", "b", "c"));
        boolean isEqual = compareLists(list1, list2);
        System.out.println("列表1和列表2是否相等?" + isEqual); // true
        
        // 测试用例2
        List<String> list3 = new ArrayList<>(Arrays.asList("a", "b", "c"));
        List<String> list4 = new ArrayList<>(Arrays.asList("c", "b", "a"));
        isEqual = compareLists(list3, list4);
        System.out.println("列表3和列表4是否相等?" + isEqual); // false
        
        // 测试用例3
        List<String> list5 = new ArrayList<>(Arrays.asList("a", "b", "c"));
        List<String> list6 = new ArrayList<>(Arrays.asList("a", null, "c"));
        isEqual = compareLists(list5, list6);
        System.out.println("列表5和列表6是否相等?" + isEqual); // false
    }
}
实现

在上面的代码中,我们定义了一个名为 compareLists 的静态方法,该方法接受两个 List<String> 参数并返回一个布尔值表示两个列表是否相等。

在该方法中,我们首先检查两个列表是否都为 null,如果是,则它们相等。如果其中一个列表为 null 或者两个列表的大小不同,我们可以直接返回 false,因为它们显然不相等了。

否则,我们使用 containsAll 方法检查每个列表是否包含另一个列表中的所有元素。如果两个列表互相包含,则它们相等。

在上面的代码中,我们使用了三个测试用例来演示如何使用 compareLists 方法检查两个列表是否相等。您可以使用您自己的测试数据来测试该方法。

结论

通过使用上述代码片段,您可以在Java中轻松地检查两个列表是否相等。此方法非常简单,只需要执行一次条件检查并使用 containsAll 方法进行比较即可。