aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/util/Tails.java
blob: f9ec7245d42909223eb83447d1af189bf1de2193 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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());
    }
}