28、可变参数和集合数组的互转

可变参数

在定义方法的时候不确定该定义多少个参数时,可以使用可变参数来定义,这样方法的参数个数会根据调用者来确定。
注意:如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个。
格式:

修饰符 返回值类型 方法名(数据类型…  变量名){}

例:

1public class list_test_12 { 2 public static void main(String[] args) { 3 print(1,2,3,4,5); 4 change("111asa",12,13,14,15); 5 } 6 7 //可变参数其实是一个数组 8 public static void print(int ... arr) { 9 for(int i = 0;i <arr.length;i++ ) { 10 System.out.println(arr[i]); 11 } 12 } 13 14 //如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个 15 public static void change(String s,int ... arr) { 16 for(int i = 0;i < arr.length;i++) { 17 System.out.println(arr[i]); 18 } 19 } 20}

数组和集合相互转化

集合转数组:

1package com.sutaoyu.list; 2 3import java.util.ArrayList; 4import java.util.List; 5 6public class list_test_12 { 7 public static void main(String[] args) { 8 List<String> list = new ArrayList(); 9 list.add("a"); 10 list.add("b"); 11 list.add("c"); 12 list.add("d"); 13 14 //当集合转换数组时,数组长度如果是<=集合的size时,转换后的数组长度等于集合的size 15 //如果数组的长度大于了size,分配的数组长度就和你指定的长度一样 16 String[] array = list.toArray(new String[3]); 17 for(String s : array) { 18 System.out.println(s); 19 } 20 } 21}

数组转集合,注意转换后的集合不能调用其add方法向里面添加数据,否则会报出UnsupportedOperationException

1//数组转集合 2String[] arr = {"a","b","c"}; 3//将数组转换成集合 4List<String> listArray = Arrays.asList(arr); 5//不能添加 6//listArray.add("d"); 7System.out.println(listArray); 8//通过这种方式将listArray转换成真正的ArrayList 9ArrayList<String> arrayList = new ArrayList<String>(listArray);

通过Arrays.asList((T… a))的源码可以看到,这里面返回的ArrayList是在Arrays类里面定义的一个内部类,并非java.util包下的ArrayList。

基本数据类型的数组转换成集合,会将整个数组当作一个对象转换,下面程序将会打印出list的对象地址

1int[] arr = {1,2,3,4,5}; 2List<int[]> list = Arrays.asList(arr); 3System.out.println(list);

将数组转换成集合,数组中的数据必须是引用数据类型

1Integer[] arr = {11,22,33,44,55}; 2List<Integer> list = Arrays.asList(arr); 3System.out.println(list);

静态导入

在导入相关包时,如果是这个类中的方法是static修饰的,可以直接导入的方式将这个方法进来。开发中使用的不多。

1package com.monkey1024.list; 2 3import static java.util.Arrays.sort; //静态导入 4/** 5 * 静态导入 6 * 7 */ 8public class StaticImport01 { 9 10 public static void main(String[] args) { 11 int[] arr = {55,22,33,44,11}; 12 sort(arr); 13 } 14}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java的可变参数

Java方法中的可变参数类型是一个非常重要的概念,有着非常广泛的应用,今天小编带大家一起去深入的了解java的可变参数使用方式!01、什么是可变参数在Java5中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数。使用...表示可变长参数,例如1.p