關於for循環和foreach循環,使用java的童鞋已經熟悉得不能在熟悉了,那麼關於他們的區別,咱們知道多少呢?java
for循環是基礎語法,全部不在贅述數組
foreach循環也叫加強型的for循環,是JDK5.0的新特性,foreach循環的加入簡化了集合的遍歷,缺點是丟掉了索引信息bash
foreach循環語法性能
for(type element: array){
}
複製代碼
for循環與foreach循環性能比較ui
ArrayList<Integer> arrayList = new ArrayList<>();
LinkedList<Integer> linkedList = new LinkedList<>();
for (int i = 0; i < 100000; i++) {
arrayList.add(i);
linkedList.add(i);
}
int number;
long start = System.currentTimeMillis();
for (int i = 0; i < arrayList.size(); i++) {
number = arrayList.get(i);
}
long end = System.currentTimeMillis();
long result = end - start;
System.out.println("ArrayList for循環消耗時間:" + result);
start = System.currentTimeMillis();
for (int i : arrayList) {
number = i;
}
end = System.currentTimeMillis();
result = end - start;
System.out.println("ArrayList foreach循環消耗時間:" + result);
start = System.currentTimeMillis();
for (int i = 0; i < linkedList.size(); i++) {
number = linkedList.get(i);
}
end = System.currentTimeMillis();
result = end - start;
System.out.println("LinkList for循環消耗時間:" + result);
start = System.currentTimeMillis();
for (int i : linkedList) {
number = i;
}
end = System.currentTimeMillis();
result = end - start;
System.out.println("LinkList foreach循環消耗時間:" + result);
複製代碼
運行結果spa
ArrayList for循環消耗時間:8
ArrayList foreach循環消耗時間:12
LinkList for循環消耗時間:7779
LinkList foreach循環消耗時間:3
複製代碼
能夠看出,ArrayList中for循環比foreach循環稍快一點,而在LinkList中,foreach循環比for循環快不少code
循環次數增長,ArrayList中for循環仍然比foreach循環快,而LinkList中for循環可能會被程序卡死索引
總結:element