public static boolean isListEqual(List<String> firstList, List<String> secondList) {
        if (firstList == null && secondList == null) {
            return true;
        }
        if (firstList == null || secondList == null) {
            return false;
        }
        
        if (firstList == secondList) {
            return true;
        }
        
        if (firstList.size() != secondList.size()) {
            return false;
        }
        
        boolean flag1 = firstList.containsAll(secondList);
        boolean flag2 = secondList.containsAll(firstList);
        return flag1 && flag2;
    }
@Test
    void testIsListEqualForEquals() {
        List<String> list1 = Arrays.asList("1", "2", "3");
        List<String> list2 = Arrays.asList("1", "2", "3");
        assertTrue(CollectionUtils.isListEqual(list1, list1));
        assertTrue(CollectionUtils.isListEqual(list1, list2));
        assertTrue(CollectionUtils.isListEqual(list2, list1));
    }