Saturday, November 28, 2015

Filtering without Lambda or Java 8

I wanted a way to filter generally without using Lambda or Java 8.
public class CollectionsUtils {
public static void remove(List<?> items, Filter<Object> filter) {
Iterator<?> iterator = items.iterator();
while (iterator.hasNext()) {
if (filter.shouldRemove(iterator.next())) {
iterator.remove();
}
}
}
}
public interface Filter<T> {
public boolean shouldRemove(T t);
}
view raw Filter.java hosted with ❤ by GitHub
List<Map.Entry<String, Object>> list = new ArrayList<Map.Entry<String, Object>>(entries);
//remove negative values
CollectionsUtils.remove(list, new Filter<Object>() {
public boolean shouldRemove(Object o1) {
Map.Entry<String, Object> entry = (Map.Entry<String, Object>)o1;
Double d1 = Double.parseDouble(entry.getValue().toString());
return d1<0.25;
}
});

No comments: