aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/util/Tails.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-13 21:02:11 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-13 21:02:11 +0000
commit561432667229f94fa22adbd5ff083d0bddea482e (patch)
tree976e92348f45e4584deeab069528b7d1c1ded686 /src/main/java/org/zwobble/couscous/util/Tails.java
parent6f55b35b12c31e923170818ac0452e694465c68c (diff)
Tidy up processing of statements in switch
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());
+ }
+}