Arrays.asList() 示例

 1 package Test.others;
 2 
 3 import java.util.Arrays;
 4 import java.util.Collections;
 5 import java.util.List;
 6 
 7 public class ArraysDemo {
 8     public static void main(String[] args) {
 9        /*
10        static <T> List<T>            asList(T... a)
11        返回由指定数组支持的固定大小的列表。
12        1.参数列表是一个可变参数列表 数量任意 类型一致即可
13        2.T泛型仅仅支持对象类型 基本数据类型进入 自动成了包装类
14        3.固定大小的列表
15        */
16         /*1.放基本数据类型*/
17         int[] a_int_arr = {9, 8, 7, 6, 5, 7, 3};
18         List<int[]> a_int_List = Arrays.asList(a_int_arr);//放入了一个参数 .var 自动补全
19         //这样放的话 是一个放一个int数组对象
20         System.out.println(a_int_List);//直接打打印数组对象 数组对象没有重写toString
21         for (int[] ints : a_int_List) {
22             System.out.println(Arrays.toString(ints));
23         }
24         System.out.println("-----------------------");
25         /*2.放引用类型*/
26         Integer[] a_Integer_arr = new Integer[]{12, 13, 15, 2, 6, 5, 7};//自动装箱
27         List<Integer> a_Integer_List = Arrays.asList(a_Integer_arr);//放入了一个引用数据类型的数组
28         List<Integer> a_Integer_List_toLong = Arrays.asList(12, 13, 15, 2, 6, 5, 7);//自动装箱成包装类 加入8个数
29         System.out.println(a_Integer_List);
30         System.out.println(a_Integer_List_toLong);
31         System.out.println("-----------------------");
32         /*3.对转化后的list 使用修改方法*/
33         /*
34          * 修改后 两个引用都是指向了同一对象 所以都更新了
35          *
36          */
37         a_Integer_List.set(0, 123);
38         System.out.println("IntegerList:"+a_Integer_List);//元素重写了toString() 获得不了地址值了-.-...
39         System.out.println(a_Integer_arr);//同样 Integer数组对象 也没有重写 toString()
40         System.out.println("Integer数组:"+Arrays.toString(a_Integer_arr));
41         //Integer数组: 值和 IntegerList值同时变是对的
42         // 可变参数的本质就是一个数组 用对象数组 传给 另外的一个对象数组 传的是地址值 改一处 持有同样地址的变量 展示数据一致
43         System.out.println(a_Integer_arr.hashCode());// 数组对象
44         System.out.println(a_Integer_List.hashCode());// list 对象   不相同是对的
45         System.out.println("-----------------------");
46         /*4.使用Add remove*/
47         /*
48          * 不支持的操作异常
49          *
50          * */
51 //        a_Integer_List.add(1);
52 //        Integer one= 7;
53 //        System.out.println(a_Integer_List.remove(one));
54         /*5.看看基本数据类型能不能用List的方法改值*/
55         /*
56          *用set是能改值的 只不过和你想的不一样 改的话是整体改
57          *int[]直接转List 放入的是一个整体 仅且一个 数组对象
58          *a_int_List 和 a_int_arr 指向的不是同一个对象所以
59          *
60          */
61 //        a_int_List.set(0,123);//要的一个int数组对象 提供的是 int
62 
63         for (int[] ints : a_int_List) {
64             System.out.print("修改前:");
65             System.out.println(Arrays.toString(ints));
66         }
67         a_int_List.set(0, new int[]{1, 2, 3});
68         for (int[] ints : a_int_List) {
69             System.out.print("修改后:");
70             System.out.println(Arrays.toString(ints));
71         }
72     }
73 }

 

posted @ 2022-06-24 08:43  ACMAN-Mr.Lee  阅读(32)  评论(0编辑  收藏  举报