shift

今日は配列の一部切り出し。
javascriptにはある機能なんだけどjavaのコアAPIにはない。
ジェネリクスを使えばもう少し綺麗になるのかな。


2/1追記
jdk6からはArrays#copyOfRange()なんてメソッドがあるんだね、
jdk6はまだあまり使ってないから新機能のは良くわかってない。
ArraysったらasList、fill、sortあたりはよく使うけどな〜

public static Object shift(Object array) {
    return shift(array, 1);
}

public static Object shift(Object array, int count) {
    return slice(array, count, Array.getLength(array) - count);
}

public static Object slice(Object array, int offset, int length) {
    Object ret = Array.newInstance(array.getClass().getComponentType(), length);
    System.arraycopy(array, offset, ret, 0, length);
    return ret;
}