[Java] ArrayDeque

ArrayDeque is implemented by array. When capacity increased, it will create a new array and copy the old one to new.

import java.util.*;
import java.lang.reflect.*;

public class ArrayDequePerformance {
  public static void main(String[] args) {
    try {
      long s1 = now();
      ArrayDeque<Integer> q = new ArrayDeque<>();
      for (int i = 0; i < 16777215; ++i) {
        q.add(1);
      }
      long e1 = now();
      System.out.println(e1 - s1);

      Field f = q.getClass().getDeclaredField("elements");
      f.setAccessible (true);
      Object[] ar = (Object[])f.get(q);
      System.out.println(ar.length);

      long s2 = now();
      q.add(1);
      long e2 = now();
      System.out.println(e2 - s2);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  public static long now() {
    return System.currentTimeMillis();
  }
}
131
16777216
113

Recommended Posts

[Java] ArrayDeque
Java
Java
Java lernen (0)
Java studieren ―― 3
[Java] -Array
Java geschützt
[Java] Anmerkung
[Java] Modul
Java-Array
Java studieren ―― 9
Java Scratch Scratch
Java-Tipps, Tipps
Java-Methoden
Java-Methode
Java (Konstruktor)
Java-Array
Java (überschreiben)
Java (Methode)
Java Day 2018
Java-Zeichenfolge
Java (Array)
Java statisch
Java-Serialisierung
Java Anfänger 4
JAVA hat bezahlt
Java studieren ―― 4
Java (gesetzt)
Java-Shell-Sortierung
[Java] compareTo
Java studieren -5
Java reflektierend 获 获 举
Java (Schnittstelle)
Java-Memorandum
Java-Array
Java studieren ―― 1
[Java] Array
[Java] Polymorphismus
Java # 0 studieren
Java-Überprüfung
Java-Framework
Java-Funktionen
[Java] Vererbung
FastScanner Java
Java-Funktionen
Java Anfänger 3
Java-Memo
Java (Kapselung)
Java-Vererbung
[Java] Überladung
Java-Grundlagen
Java dekompilieren
[Java] Anmerkung
Java Note
Java Anfänger
Java (add2)
JAVA (Karte)
[Java] -Schnittstelle
Java9-Sammlung
Java-Grundlagen