aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/util/Tails.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/util/Tails.java')
-rw-r--r--src/main/java/org/zwobble/couscous/util/Tails.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/util/Tails.java b/src/main/java/org/zwobble/couscous/util/Tails.java
new file mode 100644
index 0000000..f9ec724
--- /dev/null
+++ b/src/main/java/org/zwobble/couscous/util/Tails.java
@@ -0,0 +1,26 @@
+package org.zwobble.couscous.util;
+
+import java.util.Iterator;
+import java.util.List;
+
+public class Tails {
+ public static <T> Iterable<List<T>> tails(List<T> list) {
+ return () -> new Iterator<List<T>>() {
+ private int startIndex = 0;
+
+ @Override
+ public boolean hasNext() {
+ return startIndex < list.size();
+ }
+
+ @Override
+ public List<T> next() {
+ return list.subList(startIndex++, list.size());
+ }
+ };
+ }
+
+ public static <T> List<T> tail(List<T> list) {
+ return list.subList(1, list.size());
+ }
+}