

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