您的位置:首页 > 编程语言 > Java开发

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

2017-09-17 22:48 627 查看
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]

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐