import java.util.*; /* * Stone.java * * class to support immutable collection handling * * @author kei sugano * * */ public class Stone { public static <T> List<T> newList(T e){ List<T> list = new ArrayList<T>(){{ add(e); }}; return list; } public static <T> List<T> newList(T e, T e2){ return push(newList(e), e2); } public static <T> List<T> newList(T e, T e2, T e3){ return push(newList(e, e2), e3); } public static <T> List<T> newList(T e, T e2, T e3, T e4){ return push(newList(e, e2, e3), e4); } public static <T> List<T> newList(T e, T e2, T e3, T e4, T e5){ return push(newList(e, e2, e3, e4), e5); } public static <T> List<T> newList(T e, T e2, T e3, T e4, T e5, T e6){ return push(newList(e, e2, e3, e4, e5), e6); } public static <T> List<T> concatList(List<T> list1, List<T> list2){ List<T> _list = new ArrayList<T>(); _list.addAll(list1); _list.addAll(list2); return _list; } public static <T> List<T> toList(T[] args){ return Arrays.asList(args); } public static <T> List<T> push(List<T> list, T elem){ List<T> _list = new ArrayList<T>(); for(T t : list) _list.add(t); _list.add(elem); return _list; } public static <T> T get(List<T> list, Integer i){ return list.get(i); } public static <T> void puts(T text){ System.out.println(text); } public static <T> void puts(List<T> list){ System.out.print("["); for(T t : list) System.out.print(t.toString() + ","); System.out.print("]"); System.out.println(""); } }