java中for迴圈和ArrayList的詳細解析案例

mischen520發表於2017-08-09

/**

先看下面的程式碼:
 * 
 */
package com.mischen.cn;

import java.util.ArrayList;
import java.util.List;

/**
 * @author mischen
 *
 */
public class Test2 {
	public static void main(String args[]){
		List<String> list=new ArrayList<String>();
		list.add("1");
		list.add("2");
		list.add("3");
		list.add("4");
		for(int i=0;i<list.size();i++)
			list.remove(i);
		for(int i=0;i<list.size();i++)
			System.out.print(list.get(i)+",");//2,4,
	}
}

最後程式輸出的是2,4,    這是因為使用ArrayList的時候,由於每次去移除一個元素,所以就導致後面的每一個元素向前移一位,0以前的值是1,移除以後就沒有了,此時0下標的集合這個數依然存在,此時[0]=‘2’,[1]='3',[2]='4'了,當執行迴圈再移動的時候,此時i變成1了,當移除以後,由後面的4來填充前面的[2]了。所以最後輸出2,4,

值得注意的是:

for迴圈語句的迴圈體如果只有一個語句,則大括號可以省略;如果迴圈體由多個語句組成,就必須要使用大括號(否則將只把第一個語句作為迴圈體,而後面的語句則作為“迴圈體以外”的語句處理)。

相關文章