博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
28、可变参数和集合数组的互转
阅读量:5886 次
发布时间:2019-06-19

本文共 2156 字,大约阅读时间需要 7 分钟。

可变参数

在定义方法的时候不确定该定义多少个参数时,可以使用可变参数来定义,这样方法的参数个数会根据调用者来确定。

注意:如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个。
格式:

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

例:

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) {        List
list = 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"};//将数组转换成集合List
listArray = 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};            List
list = Arrays.asList(arr); System.out.println(list);

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

Integer[] arr = {11,22,33,44,55};                    List
list = 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);        }}

 

转载于:https://www.cnblogs.com/zhuifeng-mayi/p/10133170.html

你可能感兴趣的文章
mariadb启动报错:[ERROR] Can't start server : Bind on unix socket: Permission denied
查看>>
nginx的信号量
查看>>
云im php,网易云IM
查看>>
河南农业大学c语言平时作业答案,河南农业大学2004-2005学年第二学期《C语言程序设计》期末考试试卷(2份,有答案)...
查看>>
c语言打开alist文件,C语言 文件的打开与关闭详解及示例代码
查看>>
c语言 中的共用体和结构体如何联合定义,结构体(Struct)、联合体(Union)和位域
查看>>
SDL如何嵌入到QT中?!
查看>>
P1026 统计单词个数
查看>>
[js高手之路] html5 canvas系列教程 - 状态详解(save与restore)
查看>>
poi excel 常用api
查看>>
AD提高动态的方法(附SNR计算)
查看>>
[转]轻松实现可伸缩性,容错性,和负载平衡的大规模多人在线系统
查看>>
五 数组
查看>>
也谈跨域数据交互解决方案
查看>>
EntityFramework中使用Include可能带来的问题
查看>>
面试题28:字符串的排列
查看>>
css important
查看>>
WPF 实现窗体拖动
查看>>
NULL不是数值
查看>>
Oracle学习笔记之五,Oracle 11g的PL/SQL入门
查看>>