public static <T> boolean sequenceDeepEquals(final List<? extends T> first, final List<? extends T> second) { VerifyArgument.notNull(first, "first"); VerifyArgument.notNull(second, "second"); if (first == second) { return true; } if (first.size() != second.size()) { return false; } if (first.isEmpty()) { return true; } for (int i = 0, n = first.size(); i < n; i++) { if (!sequenceDeepEqualsCore(first.get(i), second.get(i))) { return false; } } return true; }
public static <T> boolean sequenceDeepEquals(final List<? extends T> first, final List<? extends T> second) { VerifyArgument.notNull(first, "first"); VerifyArgument.notNull(second, "second"); if (first == second) { return true; } if (first.size() != second.size()) { return false; } if (first.isEmpty()) { return true; } for (int i = 0, n = first.size(); i < n; i++) { if (!sequenceDeepEqualsCore(first.get(i), second.get(i))) { return false; } } return true; }
public static <T> boolean sequenceDeepEquals(final List<? extends T> first, final List<? extends T> second) { VerifyArgument.notNull(first, "first"); VerifyArgument.notNull(second, "second"); if (first == second) { return true; } if (first.size() != second.size()) { return false; } if (first.isEmpty()) { return true; } for (int i = 0, n = first.size(); i < n; i++) { if (!sequenceDeepEqualsCore(first.get(i), second.get(i))) { return false; } } return true; }
public static <T> boolean sequenceDeepEquals(final Iterable<? extends T> first, final Iterable<? extends T> second) { VerifyArgument.notNull(first, "first"); VerifyArgument.notNull(second, "second"); if (first == second) { return true; } if (first instanceof List<?> && second instanceof List<?>) { return sequenceDeepEquals((List<?>) first, (List<?>) second); } final Iterator<? extends T> firstIterator = first.iterator(); final Iterator<? extends T> secondIterator = second.iterator(); while (firstIterator.hasNext()) { if (!secondIterator.hasNext()) { return false; } if (!sequenceDeepEqualsCore(firstIterator.next(), secondIterator.next())) { return false; } } return !secondIterator.hasNext(); }
public static <T> boolean sequenceDeepEquals(final Iterable<? extends T> first, final Iterable<? extends T> second) { VerifyArgument.notNull(first, "first"); VerifyArgument.notNull(second, "second"); if (first == second) { return true; } if (first instanceof List<?> && second instanceof List<?>) { return sequenceDeepEquals((List<?>) first, (List<?>) second); } final Iterator<? extends T> firstIterator = first.iterator(); final Iterator<? extends T> secondIterator = second.iterator(); while (firstIterator.hasNext()) { if (!secondIterator.hasNext()) { return false; } if (!sequenceDeepEqualsCore(firstIterator.next(), secondIterator.next())) { return false; } } return !secondIterator.hasNext(); }
public static <T> boolean sequenceDeepEquals(final Iterable<? extends T> first, final Iterable<? extends T> second) { VerifyArgument.notNull(first, "first"); VerifyArgument.notNull(second, "second"); if (first == second) { return true; } if (first instanceof List<?> && second instanceof List<?>) { return sequenceDeepEquals((List<?>) first, (List<?>) second); } final Iterator<? extends T> firstIterator = first.iterator(); final Iterator<? extends T> secondIterator = second.iterator(); while (firstIterator.hasNext()) { if (!secondIterator.hasNext()) { return false; } if (!sequenceDeepEqualsCore(firstIterator.next(), secondIterator.next())) { return false; } } return !secondIterator.hasNext(); }