可变参数
在定义方法的时候不确定该定义多少个参数时,可以使用可变参数来定义,这样方法的参数个数会根据调用者来确定。
注意:如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个。格式:修饰符 返回值类型 方法名(数据类型… 变量名){}
例:
public class list_test_12 { public static void main(String[] args) { print(1,2,3,4,5); change("111asa",12,13,14,15); } //可变参数其实是一个数组 public static void print(int ... arr) { for(int i = 0;i< arr.length;i++) { System.out.println(arr[i]); } }}
数组和集合相互转化
集合转数组:
package com.sutaoyu.list;import java.util.ArrayList;import java.util.List;public class list_test_12 { public static void main(String[] args) { Listlist = new ArrayList(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); //当集合转换数组时,数组长度如果是<=集合的size时,转换后的数组长度等于集合的size //如果数组的长度大于了size,分配的数组长度就和你指定的长度一样 String[] array = list.toArray(new String[3]); for(String s : array) { System.out.println(s); } }}
数组转集合,注意转换后的集合不能调用其add方法向里面添加数据,否则会报出UnsupportedOperationException
//数组转集合String[] arr = {"a","b","c"};//将数组转换成集合ListlistArray = Arrays.asList(arr); //不能添加//listArray.add("d"); System.out.println(listArray);//通过这种方式将listArray转换成真正的ArrayListArrayList arrayList = new ArrayList (listArray);
通过Arrays.asList((T… a))的源码可以看到,这里面返回的ArrayList是在Arrays类里面定义的一个内部类,并非java.util包下的ArrayList。
基本数据类型的数组转换成集合,会将整个数组当作一个对象转换,下面程序将会打印出list的对象地址
int[] arr = {1,2,3,4,5}; Listlist = Arrays.asList(arr); System.out.println(list);
将数组转换成集合,数组中的数据必须是引用数据类型
Integer[] arr = {11,22,33,44,55}; Listlist = Arrays.asList(arr);System.out.println(list);
静态导入
在导入相关包时,如果是这个类中的方法是static修饰的,可以直接导入的方式将这个方法进来。开发中使用的不多。
package com.monkey1024.list;import static java.util.Arrays.sort; //静态导入/** * 静态导入 * */public class StaticImport01 { public static void main(String[] args) { int[] arr = {55,22,33,44,11}; sort(arr); }}