From e07bb984bd446f9f9ddd469c6458c5de6000097b Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 1 Apr 2016 11:10:26 +0100 Subject: Ensure unique generated argument names --- .../java/org/zwobble/couscous/util/ExtraLists.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/main/java/org/zwobble/couscous/util') diff --git a/src/main/java/org/zwobble/couscous/util/ExtraLists.java b/src/main/java/org/zwobble/couscous/util/ExtraLists.java index 8485b02..3ee0ce3 100644 --- a/src/main/java/org/zwobble/couscous/util/ExtraLists.java +++ b/src/main/java/org/zwobble/couscous/util/ExtraLists.java @@ -85,6 +85,24 @@ public class ExtraLists { .collect(Collectors.toList()); } + public static List eagerMapWithIndex( + Iterable iterable, + FunctionWithIndex function) + { + ImmutableList.Builder builder = ImmutableList.builder(); + int index = 0; + Iterator iterator = iterable.iterator(); + while (iterator.hasNext()) { + builder.add(function.apply(iterator.next(), index)); + index++; + } + return builder.build(); + } + + public interface FunctionWithIndex { + R apply(T value, int index); + } + public static List eagerMap( Iterable iterable1, Iterable iterable2, -- cgit v1.2.3