Array.asList的使用方法

总结:

1. 把一般数组用Array.asList转为List

2. 转为的List更新时,原来的数组也会跟着更新

3. 基本类型数组转为的List更新时,会报错,而对象类型的不会

package testJava;

import sun.plugin.javascript.navig.Array;

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

/**
 * Created by cfxd000 on 2016/10/25.
 */
public class testAsList {
    public static void main(String[] args) {

        int[] a_int = {1, 2, 3, 4};
        List a_list = Arrays.asList(a_int);
        /* 预期输出应该是1,2,3,4,但实际上输出的仅仅是一个引用, 这里它把a_int当成了一个元素 */
        for (Object obj : a_list) {
            System.out.println(obj);
        }
        /*因为数组和列表链接在一起,所有要获取出来才能用*/
        int[] a_list_obj = (int[]) a_list.get(0);
        for (Object obj : a_list_obj){
            System.out.println(obj);
        }



        /*如果传进去的是对象,能直接使用*/
        Integer[] b_Integer = new Integer[] { 1, 2, 3, 4 };
        List b_list = Arrays.asList(b_Integer);
        for (Object obj:b_list) {
            System.out.println("blist="+obj);
        }
        /*例子2,传进的是user对象*/
        User[] b_Users = new User[]{new User(1),new User(2),new User(3),new User(4)};
        List b_Ulist = Arrays.asList(b_Users);
        for (Object obj:b_Ulist) {
            User temp = (User) obj;
            System.out.println(temp.getId());
        }



        /*当更新数组或者asList之后的List,另一个将自动获得更新,
         *但是基本类型数组aslist之后不能的值,不能更新,否则会报错
         */
        a_int[0] = 999;
        System.out.println("a_list更新后:"+a_int[0]);
        for (Object obj : a_list_obj){
            System.out.println(obj);
        }
        b_Integer[0] = 222;
        System.out.println("b_Integer更新后:"+b_Integer[0]);
        for (Object obj : b_Integer){
            System.out.println(obj);
        }
        b_list.set(0,123);
        System.out.println("b_Integer更新后:"+b_Integer[0]);
        for (Object obj : b_Integer){
            System.out.println(obj);
        }
    }
}

class User{
    private int id;

    public User(int id) {
        this.id = id;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}


你可能感兴趣的:(java)