package net.serenitybdd.integration.utils; import com.beust.jcommander.internal.Lists; import com.google.common.collect.ImmutableList; import java.util.Arrays; import java.util.Collections; import java.util.List; public class ListFunctions { public static <T> List<T> concat(List<? extends T>... lists) { if (lists.length == 0) { return Collections.EMPTY_LIST; } List<T> combined = Lists.newArrayList(); for (List<? extends T> list : lists) { combined.addAll(list); } return combined; } public static <T> T[] concat(T[] first, T[] second) { T[] combined = Arrays.copyOf(first, first.length + second.length); System.arraycopy(second, 0, combined, first.length, second.length); return combined; } public static <T> T head(List<T> list) { return list.get(0); } public static <T> List<T> tail(List<T> list) { return ImmutableList.copyOf(list.subList(1, list.size())); } }