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]
}
}
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]
}
}
相关文章推荐
- java基础37 集合框架工具类Collections和数组操作工具类Arrays
- 黑马程序员 java 基础 毕向东 面向对象 集合框架 工具类 Collections and Arrays
- JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)
- 黑马程序员——Java基础---泛型、集合框架工具类:collections和Arrays
- day17集合框架的工具类Collections。二分法查找原理 。操作数组的工具类Arrays,集合变数组。高级for循环。可变参数
- Java基础---泛型、集合框架工具类:collections和Arrays (黑马程序员)
- 黑马程序员——Java基础---泛型、集合框架工具类:Collections和Arrays、JDK 1.5新特性
- 黑马程序员——Java基础——集合工具类Collecions、Arrays、其他对象System类、Runtime类、Date类、Calendar类、Math类等操作
- 【Java基础】——集合工具类Collections和数组工具类Arrays
- Java基础知识强化之集合框架笔记33:Arrays工具类中asList()方法的使用
- 黑马程序员——Java基础---泛型、集合框架工具类:collections和Arrays
- 黑马程序员_Java第17天知识总结_集合框架的工具类_Collections_Arrays_将数组变成list集合_集合变数组_高级for循环_可变参数
- Java基础---泛型、集合框架工具类:collections和Arrays
- 黑马程序员——Java基础---泛型、集合框架工具类:collections和Arrays
- 黑马程序员——Java语言基础:集合框架(Collection、Map,工具类Collections、Arrays)
- 黑马程序员——Java基础知识——集合框架、集合工具类、Arrays
- 黑马程序员——Java基础--集合框架工具类:Collections、Arrays、其他对象
- 黑马程序员——JAVA基础之Collections和Arrays,数组集合的转换
- 黑马程序员--java基础复习集合框架工具类及其他对象
- 黑马程序员——JAVA基础——集合---概述、Collection中共性方法、List、Map、工具类Collections和Arrays