[英]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.