[JAVA] Array vs ArrayList vs HashMap Erweitert für Statement Race

Korrektur

Der Vergleichsoperator war falsch (behoben)

Was wurde verwendet

・ Java9 ・ Sonnenfinsternis

Motivation

Ich frage mich, welches das schnellste ist, wenn ich das Beste beiseite lege und es mit der erweiterten for-Anweisung drehe.

Ergebnis

ForEaerVs.java


public class ForEaerVs {
	public static void main(String[] argS) {

		Integer mm;
		
		//Array
		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("Array-Geschwindigkeit:" + (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("Listengeschwindigkeit:" + (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-Geschwindigkeit:" + (endTimeHash -staetTimeHash));

	}
}

ForEaerVsResult.java


Arrangement-Geschwindigkeit: 4020600
Listengeschwindigkeit: 11350400
Hash-Geschwindigkeit: 18974400

Das Ergebnis einschließlich der Erstellungszeit ist wie folgt

ForEaerVsPlusCreateResult.java


Arrangement-Geschwindigkeit: 35613700
Listengeschwindigkeit: 98473300
Hash-Geschwindigkeit: 121742700

Impressionen

Obwohl jede unterschiedliche Verwendung hat, ist die Anordnung so langsam? </ s> Verehre die Großartigkeit der Senioren

hinzufügen

Ich habe es auch mit Linked List versucht

ForEaerVsResult.java


Array-Geschwindigkeit: 4001200
Listengeschwindigkeit: 9521900
Hash-Geschwindigkeit: 19611200
Verknüpfte Geschwindigkeit: 15211300

Das Ergebnis einschließlich der Erstellungszeit ist wie folgt

ForEaerVsPlusCreateResult.java


Array-Geschwindigkeit: 32542100
Listengeschwindigkeit: 80343600
Hash-Geschwindigkeit: 101256200
Verknüpfte Geschwindigkeit: 140576800

Recommended Posts

Array vs ArrayList vs HashMap Erweitert für Statement Race
[Java] für Anweisung / erweitert für Anweisung
[Java] So drehen Sie ein zweidimensionales Array mit einer erweiterten for-Anweisung
[Java] So erhalten Sie HashMap-Elemente per Schleifensteuerung mithilfe der erweiterten for-Anweisung
Vergleichen Sie die Geschwindigkeit der for-Anweisung und der erweiterten for-Anweisung.
So verwenden Sie ein Array für HashMap-Schlüssel
Java für Anweisung
Ich habe versucht, die erweiterte for-Anweisung in Java zu verwenden
[Anfänger] Java-Variable / logischer Operator / erweitert für Anweisung [Anmerkung 22]
So schleifen Sie Java Map (für jede / erweiterte for-Anweisung)