Java基础之集合框架--Arrays工具类(专门操作数组的工具类)


package newFeatures8;

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

public class ArraysDemo {

	public static void main(String[] args) {
		//arrays_demo();
		arrays_asList_demo();
	}
	/**
	 * 用于操作数组的工具类,里面都是静态方法
	 */
	public static void arrays_demo(){
		int[] arr={1,3,5,7};
		System.out.println(arr);//[I@15db9742  在堆内存中只有一个对象
		//那么如何像集合那样,直接就能打印出数组里的元素呢?可以使用Arrays.toString(arr);
		System.out.println(Arrays.toString(arr));//[1, 3, 5, 7]
	}
	  //toString(int[] a)的源代码实现
	 /*public static String toString(int[] a) {
	        if (a == null)
	            return "null";
	        int iMax = a.length - 1;
	        if (iMax == -1)
	            return "[]";

	        StringBuilder b = new StringBuilder();
	        b.append('[');
	        for (int i = 0; ; i++) {
	            b.append(a[i]);
	            if (i == iMax)
	                return b.append(']').toString();
	            b.append(", ");
	        }
	    }*/
	
	/**
	 * @description1 
	 * 接下来说到一个Arrays中的一个很常用的方法:</br>
	 * public static <T> List<T> asList(T... a)</br>
	 * 返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直接写”到数组。)
	 * 此方法同 Collection.toArray() 一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。
	 * 返回的列表是可序列化的,并且实现了 RandomAccess。 
	 * 此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素: 
       List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
       @description2
       	把数组变成集合有什么好处?可以使用集合的思想和方法来操作数组中的元素
        for example:判断数组中是否包含某个元素
	 */
	public static void arrays_asList_demo(){
		
		String[] strArr={"qq","ww","ee","rr","tt","yy"};
		List<String> strList=Arrays.asList(strArr);//返回一个受指定数组支持的固定大小的列表
		System.out.println(strList);//[qq, ww, ee, rr, tt, yy]
		/*
		 * 注意将数组变成集合,不可以使用集合中的增删方法,否则会抛出异常
		 * 原因是数组的长度是固定的 
		 */
		//strList.add("dd");//会抛出 java.lang.UnsupportedOperationException
		
		/*
		 * 注意:如果数组中的元素都是对象,那么变成集合时,数组中的元素直接转为集合中的元素
		 * 如果数组中的元素是基本数据类型,那么会将该数组对象作为集合中的元素存在
		 */
		int[] arr={1,3,5,7};
		List<int[]> intList=Arrays.asList(arr);
		System.out.println("改进前:"+intList);//改进前:[[I@15db9742]
		
		//改进
		Integer[] integers={1,3,5,7};//自动装箱
		List<Integer> integersList=Arrays.asList(integers);
		System.out.println("改进后:"+integersList);//改进后:[1, 3, 5, 7]
		
	}
	

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值