集合框架-工具类-Arrays-asList方法

 1 package cn.itcast.p3.toolclass.arrays.demo;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Arrays;
 5 import java.util.List;
 6 
 7 public class ArraysDemo {
 8 //数组转成集合
 9     public static void main(String[] args) {
10         // TODO Auto-generated method stub
11         /*
12          * Arrays:集合框架的工具类。里面的方法都是静态的。
13          * 
14          * 
15          * 
16          */
17         
18 //        int[] arr = {3,1,5,6,3,6};
19 //        
20 //        System.out.println(arr);//[I@2f92e0f4
21 //        System.out.println(Arrays.toString(arr));
22         
23         
24 //        demo_1();
25         
26         demo_2();//数组转成集合Arrays.asList
27     }
28 
29     private static void demo_2() {
30         // TODO Auto-generated method stub
31         /*
32          * 如果数组中的元素是对象比如String,那么转成集合时,直接将数组中的元素作为集合中的元素进行集合存储。
33          * 
34          * 如果数组中的元素是基本类型数值比如int,那么会将该数组作为集合中的元素进行存储。
35          */
36         int[] arr = {31,11,51,61};
37         
38         List<int[]> list = Arrays.asList(arr);
39         
40         System.out.println(list);//[[I@2f92e0f4]
41     }
42 
43     /**
44      * 
45      */
46     public static void demo_1() {
47         /*
48          * 重点:List asList(数组)将数组转成集合。
49          * 
50          * 好处:其实可以使用集合的方法操作数组中的元素
51          * 注意:数组的长度是固定的,所以对于集合的增删方法是不可以使用的否则会发生java.lang.UnsupportedOperationException
52          */
53         String[] arr = {"abc","haha","xixi"};
54         
55         boolean b = myContains(arr, "xixi");
56         System.out.println("contains:"+b);
57         
58         List<String> list = Arrays.asList(arr);
59         boolean b1 = list.contains("xixi");
60         System.out.println("list contains:="+b1);
61         list.add("hiahaia");//java.lang.UnsupportedOperationException不支持操作异常
62         System.out.println(list);
63     }
64     
65     public static boolean myContains(String[] arr,String key) {
66         for (int i = 0; i < arr.length; i++) {
67             if (arr[i].equals(key)) {
68                 return true;
69             }
70             
71         }
72         return false;
73     }
74     
75     //toString的经典实现。Arrays.toString源码
76     public static String myToString(int[] a) {
77          int iMax = a.length - 1;
78             if (iMax == -1)
79                 return "[]";
80 
81             StringBuilder b = new StringBuilder();
82             b.append('[');
83             for (int i = 0; ; i++) {//中间省略条件判断,提高效率 默认为true
84                 b.append(a[i]);
85                 if (i == iMax)//只在结尾调用一次
86                     return b.append(']').toString();
87                 b.append(", ");
88             }
89     }
90 
91 }
ArraysDemo

 

posted @ 2021-10-26 15:57  doremi429  阅读(17)  评论(0编辑  收藏  举报