LoginSignup
0
0

More than 3 years have passed since last update.

LinkedListとArrayList

Posted at

リストって

脳死でArrayList使っていたけれど、実はいろいろあるらしい

LinkedArrayListTest.java
package listTest;

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

public class LinkedArrayListTest {

    public static void main(String[] args) {
        measure(1000000);
    }

    private static void linked(int num) {
        List<String> list = new LinkedList<>();
        for (int i = 0; i < num; i++) {
            list.add("asd");
        }
    }

    private static void array(int num) {
        List<String> list = new ArrayList<>();
        for (int i = 0; i < num; i++) {
            list.add("asd");
        }
    }

    public static void measure(int num) {
        Long start = System.nanoTime();
        linked(num);
        Long middle = System.nanoTime();
        array(num);
        Long end = System.nanoTime();
        System.out.println("Linked : " + (middle - start) + " ns\r\nArray : " + (end - middle) + " ns");
    }
}

結果

Linked : 19082700 ns
Array  : 14878000 ns

まぁ回数が少ないので何とも言えませんが、addだけならLinkedListの方が早いらしいです

ただ、get(0)とか、特定の要素を持ってくるのはArrayのほうが早いらしく

ただリストを作ってforループするだけならLinkedListでよく、順番とかをいっぱい使いたいならArrayって感じでしょうか

余力があればこういった細かい性能問題も考えられればうれしいです

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0