簡體   English   中英

ArrayList索引?

[英]ArrayList index?

您如何找到存儲在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;
        }
    }
}

您正在使用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;
    }
}

您需要使用indexOf(object)來獲取index

假設您使用的大於Java5。 否則,您需要創建一個Integer對象而不是原始int對象。

增強的for循環在內部使用迭代器,因此無法獲得索引。

-使用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.


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM