配列関係

ArrayComparator

import java.util.Comparator; /** * 配列の比較に使用するComparator。 * * @param <V> */ public class ArrayComparator<V> implements Comparator<V[]> { // 比較する要素の優先順位 private int[] priority; // すべての要素の比較に使用するComparator private Com</v[]></v></v>…

Collections

使い勝手や使い道は聞かないで。 面白そうだから作ってみただけ。 public interface Executer<V> { public V execute(int index, Object... objects) throws Exception; } import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; </v>…

arrayIndexOf

配列内のオブジェクトの位置を返す。 Arrays#binarySearchはソートしないと使えない。 なんでかね? public static int arrayIndexOf(Object array, Object object) { int arrayLength = Array.getLength(array); for (int i = 0; i < arrayLength; i++) { O…

asList

Arrays#asList()はプリミティブの配列は配列として扱わず、1つのオブジェクトとして処理されてしまうのでその代用。 public static List asList(Object array) { if (array == null) { return null; } if (array instanceof List) { return (List) array; } …

getDimensions

配列の要素数を取得する。 多次元配列の場合、各次元の要素数が配列で返る。 Arrays#newInstance(Class, int[])で使用する。 作ったきっかけは何だったかな・・・ public static int[] getDimensions(Object array) { if (!array.getClass().isArray()) { re…

getComponentType

配列の要素のクラスを返す。 Class#getComponentType()は多次元配列の場合、1次元目の要素のクラスが配列クラスとなるのでその代用。 クラスが配列でなくなるまでClass#getComponentType()を再帰呼び出しする。 public static Class getComponentType(Class…

arrayToString

多次元配列のtoString()は末端の要素までちゃんと文字列化してくれないのでその代用。 配列の要素ごとに再帰呼び出しして[]で囲む。2/10追記。 jdk1.5からはArrays#deepToString()なんてのがあったのね〜 public static String arrayToString(Object object)…

shift

今日は配列の一部切り出し。 javascriptにはある機能なんだけどjavaのコアAPIにはない。 ジェネリクスを使えばもう少し綺麗になるのかな。 2/1追記。 jdk6からはArrays#copyOfRange()なんてメソッドがあるんだね、 jdk6はまだあまり使ってないから新機能のは…