Java 快速生成 List


#Java 笔记


方式1:使用 Arrays.asList

示例1:

import org.junit.Test;

import java.util.Arrays;
import java.util.List;

public class ListTest {

    @Test
    public void test() {
        List<Integer> list = Arrays.asList(1,12,345);  // 生成的是基于 Arrays 中的内部类 ArrayList 的对象,不是 java.util.ArrayList
        System.out.println(list.getClass().getName());
        System.out.println(list);
        System.out.println(list.get(0).getClass().getSimpleName());
    }
}

运行结果:

java.util.Arrays$ArrayList
[1, 12, 345]
Integer

示例2: 元素为多种类型:

List<Object> list = Arrays.asList("你好",345);
for (Object obj: list) {
    System.out.println(obj);
    System.out.println(obj.getClass().getSimpleName());
    System.out.println("----");
}

输出:

你好
String
----
345
Integer
----

示例3:

for (Object obj: Arrays.asList("你好",345)) {
    System.out.println(obj);
    System.out.println(obj.getClass().getSimpleName());
    System.out.println("----");
}

方式2:匿名类

import org.junit.Test;

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

public class ListTest {

    @Test
    public void test() {
        List<Integer> list = new ArrayList<Integer>() {{
            add(1);
            add(123);
        }};
        System.out.println(list);
    }

}

运行结果:

[1, 123]

方式3:自定义工具方法

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

public class ListUtil {

    public static <T> List<T> list(T... elements) {
        return arrayList(elements);
    }

    public static <T> List<T> arrayList(T... elements) {
        ArrayList<T> list = new ArrayList<T>();
        for (T v: elements) {
            list.add(v);
        }
        return list;
    }

}

测试:

import org.junit.Test;

import java.util.List;

public class ListUtilTest {

    @Test
    public void test() {
        List<String> list = ListUtil.arrayList("hello", "2");
        System.out.println(list);
    }

}

运行结果:

[hello, 2]


( 本文完 )