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

可变参数

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

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

例:

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]);
        }
    }
    
    //如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个
    public static void change(String s,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<String> 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<String> listArray = Arrays.asList(arr);                
//不能添加
//listArray.add("d");                                    
System.out.println(listArray);
//通过这种方式将listArray转换成真正的ArrayList
ArrayList<String> arrayList = new ArrayList<String>(listArray);

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值