code: public static boolean equalsIgnoreOrder(Collection<?> c1, Collection<?> c2) {
          return (c1 == null && c2 == null) || (c1 != null && c2 != null  && c1.size() == c2.size() && c1.containsAll(c2) && c2.containsAll(c1));
      }
docs: Checks if two collections are equal ignoring the order of components. It's safe to pass collections that might be null.
  
  @param c1 first collection.
  @param c2 second collection.
  
  @return True, if both lists are null or if they have exactly the same components.