訂正
比較演算子間違ってました(修正済み)
つかったもの
・Java9
・eclipce
動機
何が最適かは置いといて拡張for文で回したらどれが一番早いのかなと。
結果
ForEaerVs.java
public class ForEaerVs {
public static void main(String[] argS) {
Integer mm;
// 配列
Integer[] arry = new Integer[1000000000];
for (Integer i = 0 ; i < 1000000000; i++) {
Integer arryInt = i;
arry[i] = arryInt;
}
long staetTimeArry = System.nanoTime();
for(Integer iA : arry) {
mm = iA;
}
long endTimeArry = System.nanoTime();
System.out.println("配列速度:" + (endTimeArry -staetTimeArry));
// List
List<Integer> list = new ArrayList<Integer>();
for (Integer j = 0 ; j < 1000000000; j++) {
Integer arryInt = j;
list.add(arryInt);
}
long staetTimeList = System.nanoTime();
for (Integer iL: list) {
mm = iL;
}
long endTimeList = System.nanoTime();
System.out.println("List速度:" + (endTimeList -staetTimeList));
// HushMap
HashMap<Integer,Integer> hash = new HashMap<Integer,Integer>();
for (Integer k = 0 ; k < 1000000000; k++) {
Integer arryInt = k;
hash.put(k, arryInt);
}
long staetTimeHash = System.nanoTime();
for (Integer iH : hash.values()) {
mm = iH;
}
long endTimeHash = System.nanoTime();
System.out.println("Hash速度:" + (endTimeHash -staetTimeHash));
}
}
ForEaerVsResult.java
配列速度 :4020600
List速度 :11350400
Hash速度 :18974400
作成時間もいれた結果は以下
ForEaerVsPlusCreateResult.java
配列速度 :35613700
List速度 :98473300
Hash速度 :121742700
感想
それぞれ使いどころは違うとはいえ、配列ってこんなに遅いのか。
配列先輩の凄さを崇めよ
追加
LinkedListでもやってみた
ForEaerVsResult.java
Array速度 :4001200
List速度 :9521900
Hash速度 :19611200
Linked速度:15211300
作成時間もいれた結果は以下
ForEaerVsPlusCreateResult.java
Array速度 :32542100
List速度 :80343600
Hash速度 :101256200
Linked速度:140576800