### Question:
CollectionUtils { public static boolean equalLists(Collection<?> a, Collection<?> b) { if (a == null && b == null) { return true; } if (a == null || b == null) { return false; } return isEqualCollection(a, b); } private  CollectionUtils(); static Collection<T> subtract(Set<T> a, Set<T> b); static boolean isNotEmpty(Collection coll); static boolean isEmpty(Collection coll); static Map<String, String> stringToMap(String str, String separator); static Map<String, String> stringToMap(String str, String separator, String keyPrefix); static boolean equalLists(Collection<?> a, Collection<?> b); static boolean isEqualCollection(final Collection<?> a, final Collection<?> b); static Map<O, Integer> getCardinalityMap(final Iterable<? extends O> coll); static List<Map<String, Object>> getListByExclusion(List<T> originList, Set<String> exclusionSet);  }### Answer:
@Test public void equalLists() { Assert.assertTrue(CollectionUtils.equalLists(null,null)); Assert.assertTrue(CollectionUtils.equalLists(new ArrayList<Integer>(),new ArrayList<Integer>())); List<Integer> a = new ArrayList<Integer>(); a.add(1); a.add(2); List<Integer> b = new ArrayList<Integer>(); b.add(1); b.add(2); Assert.assertTrue(CollectionUtils.equalLists(a, b)); a.add(1); Assert.assertFalse(CollectionUtils.equalLists(a, b)); b.add(2); Assert.assertFalse(CollectionUtils.equalLists(a, b)); a.add(2); b.add(1); a.add(4); b.add(2); Assert.assertFalse(CollectionUtils.equalLists(a, b)); Assert.assertFalse(CollectionUtils.equalLists(null, new ArrayList<Integer>())); Assert.assertFalse(CollectionUtils.equalLists(new ArrayList<Integer>(), null)); }