1

ArrayList 内に格納されている int のインデックスをどのように見つけますか?

public static void thisClass(int max, int[] queue1, ArrayList<ArrayList<Integer>> aList) {

    int[] anArr = Arrays.copyOf(queue1, queue1.length);
    Arrays.sort(anArr);

    ... //sorts ints into groups (ArrayList of ArrayLists)

    }

    int n = 0;
    for (ArrayList<Integer> t : newList) {
        String itemS = "";
        int total = 0;
        for (int index : t) {
            int value = index; //isn't returning index of arrayList - its returning the value
            if (!itemS.isEmpty()) {
                itemS += ", ";
            }
            itemS += index + ":" + value; //want it to output "element Position : element Value
            total += value;
        }
    }
}
4

3 に答える 3

3

ループenhanced for loopとも呼ばれる を使用しています。foreachこのループでは、ループ内で定義されたインデックス変数はありません。それは単に配列/Iterable 自体の値です。

インデックスを取得するには、従来のforループを使用する必要があります。

ArrayList<Integer> myNumbers = new ArrayList<>();
myNumbers.add(123);
myNumbers.add(456);
myNumbers.add(789);

for(int i = 0; i < myNumbers.size(); i++) {
    int value = myNumbers.get(i);
    if(value == 789) {
        System.out.println("Found 789 at index " + i);
        break;
    }
}
于 2012-12-02T13:33:33.573 に答える
1

-これを解決する方法を使用してくださいindexOf().......

for (ArrayList<Integer> t : newList){

      int index = newList.indexOf(t);

      System.out.println(index);      // Use an array or list to store these 
                                      // index if you want.


}
于 2012-12-02T13:37:15.610 に答える
1

indexindexOf(object)を取得するには、を使用する必要があります。

java5以上を使用していると仮定します。それ以外の場合は、プリミティブ int の代わりに Integer オブジェクトを作成する必要があります。

強化された for ループは内部で反復子を使用するため、インデックスを取得できませんでした。

于 2012-12-02T13:29:30.453 に答える