/** * {@inheritDoc} */ @Override public void iterablesRemoveFirst(Iterable<?> iterable, Object value) { if (iterable == null) { return; } Iterator<?> iterator = iterable.iterator(); while (iterator.hasNext()) { if (areEqual(iterator.next(), value)) { iterator.remove(); return; } } }
/** * {@inheritDoc} */ @Override public void iterableRemoves(Iterable<?> iterable, Object value) { if (iterable == null) { return; } Iterator<?> iterator = iterable.iterator(); while (iterator.hasNext()) { if (areEqual(iterator.next(), value)) { iterator.remove(); } } } /**
/** * {@inheritDoc} */ @Override public void iterablesRemoveFirst(Iterable<?> iterable, Object value) { if (iterable == null) { return; } Iterator<?> iterator = iterable.iterator(); while (iterator.hasNext()) { if (areEqual(iterator.next(), value)) { iterator.remove(); return; } } }
/** * {@inheritDoc} */ @Override public void iterableRemoves(Iterable<?> iterable, Object value) { if (iterable == null) { return; } Iterator<?> iterator = iterable.iterator(); while (iterator.hasNext()) { if (areEqual(iterator.next(), value)) { iterator.remove(); } } } /**
/** * Returns true if given {@link Iterable} contains given value based on {@link Objects#areEqual(Object, Object)}, * false otherwise.<br> * If given {@link Iterable} is null, return false. * * @param iterable the {@link Iterable} to search value in * @param value the object to look for in given {@link Iterable} * @return true if given {@link Iterable} contains given value based on {@link Objects#areEqual(Object, Object)}, * false otherwise. */ @Override public boolean iterableContains(Iterable<?> iterable, Object value) { if (iterable == null) { return false; } return Streams.stream(iterable).anyMatch(object -> areEqual(object, value)); }
@Override protected Set<Object> newSetUsingComparisonStrategy() { // define a comparator so that we can use areEqual to compare objects in Set collections // the "less than" comparison does not make much sense here but need to be defined. return new TreeSet<>((o1, o2) -> { if (areEqual(o1, o2)) return 0; return Objects.hashCodeFor(o1) < Objects.hashCodeFor(o2) ? -1 : 1; }); }
/** * Returns true if given {@link Iterable} contains given value based on {@link Objects#areEqual(Object, Object)}, * false otherwise.<br> * If given {@link Iterable} is null, return false. * * @param iterable the {@link Iterable} to search value in * @param value the object to look for in given {@link Iterable} * @return true if given {@link Iterable} contains given value based on {@link Objects#areEqual(Object, Object)}, * false otherwise. */ @Override public boolean iterableContains(Iterable<?> iterable, Object value) { if (iterable == null) { return false; } return Streams.stream(iterable).anyMatch(object -> areEqual(object, value)); }
@Override protected Set<Object> newSetUsingComparisonStrategy() { // define a comparator so that we can use areEqual to compare objects in Set collections // the "less than" comparison does not make much sense here but need to be defined. return new TreeSet<>((o1, o2) -> { if (areEqual(o1, o2)) return 0; return Objects.hashCodeFor(o1) < Objects.hashCodeFor(o2) ? -1 : 1; }); }
/** * Returns true if given {@link Iterable} contains given value based on {@link Objects#areEqual(Object, Object)}, * false otherwise.<br> * If given {@link Iterable} is null, return false. * * @param iterable the {@link Iterable} to search value in * @param value the object to look for in given {@link Iterable} * @return true if given {@link Iterable} contains given value based on {@link Objects#areEqual(Object, Object)}, * false otherwise. */ @Override public boolean iterableContains(Iterable<?> iterable, Object value) { if (iterable == null) { return false; } for (Object next : iterable) { if (areEqual(next, value)) { return true; } } return false; }
/** * {@inheritDoc} */ @Override public void iterableRemoves(Iterable<?> iterable, Object value) { if (iterable == null) { return; } Iterator<?> iterator = iterable.iterator(); while (iterator.hasNext()) { if (areEqual(iterator.next(), value)) { iterator.remove(); } } }
@Override public int compare(Object o1, Object o2) { if (areEqual(o1, o2)) return 0; return Objects.hashCodeFor(o1) < Objects.hashCodeFor(o2) ? -1 : 1; } });