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 }