(我是 Java 新手,来自 Python ---)
我正在学习一个教程,他们创建了一个程序,该程序计算一个数字在文件中出现的次数,然后返回该数字。该程序的一个特定部分对我来说有点神秘,它处理 ArrayList 的 .get 和 .set (方法?函数?)。程序是这样的:
// (Scan a file with the numbers, say, 2 2 3 4, and put it into data1 variable.)
// (Make An Empty ArrayList with a bunch of 0's)
Scanner data1 = null;
ArrayList<Integer> count = new ArrayList<Integer>();
Integer idx;
while(data1.hasNextInt()){
idx = data1.nextInt();
System.out.println(idx);
System.out.println(count.get(idx)+1);
count.set(idx,count.get(idx)+1);
}
//Then prints out all the values; the ArrayList contains the number of times the number n occurs in the n-th index.
我的问题出现在“while”部分。具体来说,假设 data1 的数字为 2 2 3 4。似乎需要 idx = 2,然后在 count[2] 中放入 1,这是合理的。然后再次取 idx = 2(data1 中的下一个整数)并将 2 放入 count[2],这也是合理的。 此时,data1中的下一个数字使得idx = 3,但它出现在ArrayList中的索引2处,所以它应该在count[3]中放入3,这是不正确的。
那么,.get 和 .set 在这里做什么呢?他们完成后是否将元素从列表中弹出?我忽略了什么吗?