武汉java培训
达内武汉中心

15827352908

热门课程

java中数组转为列表的几种方法

  • 时间:2018-01-13 10:45
  • 发布:武汉Java培训机构
  • 来源:互联网

    1、 List list = Arrays.asList(array);2、new ArrayList(Arrays.asList(array)); 3、Collections.addAll(arraylist, array); 4、for(Element e : array) { list.add(e);}5、Use Guava :Lists.newArrayList(aStringArray);   

武汉Java培训机构

    第一种方法:List list = Arrays.asList(array);

    public class TestArray2List {
    public static void main(String[] args) {
    String array[] = { "支付宝", "微信", "银联", "聚合" };
    List<String> result = convert(array) ;
    System.out.println(result);
    }
    public static List<String> convert(String[] arr) {
    return Arrays.asList(arr);
    }
    }
    看convert方法,以下几种方法只更改此方法体,方法只做演示,实际开发入参是要判空的,大家写代码的时候要严谨点哦,避免出现异常问题.
    运行结果:
    [支付宝, 微信, 银联, 聚合]
    采坑记:
    如果用第一种方法,对转换的结果进行add或remove操作,代码如下:
    import java.util.Arrays;
    import java.util.List;
    public class TestArray2List {
    public static void main(String[] args) {
    String array[] = { "支付宝", "微信", "银联", "聚合" };
    List<String> result = convert(array) ;
    result.add("12306") ;
    result.remove("聚合") ;
    System.out.println(result);
    }
    public static List<String> convert(String[] arr) {
    return Arrays.asList(arr);
    }
    }
    会抛出java.lang.UnsupportedOperationException异常,看java api可知:
    Arrays.asList(arr) 返回的是一个固定大小的列表,不能对其进行add或remove,看源代码可知,Arrays.asList(arr) 返回的是Arrays的静态内部类,可以通过set方法更改其值.
    so,此种方法是有缺陷的,大家注意喽!
    第二种方法:new ArrayList(Arrays.asList(array));
    只更改convert 的方法内容.
    public static List<String> convert(String[] arr) {
    return new ArrayList<String>(Arrays.asList(arr));
    }
    这种方法就没有第一种方法的那个坑,但它同时创建2个list,有缺陷.
    第三种方法:Collections.addAll(arraylist, array);
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.List;
    public class TestArray2List {
    public static void main(String[] args) {
    String array[] = { "支付宝", "微信", "银联", "聚合" };
    List<String> result = convert(array) ;
    result.add("12306") ;
    result.remove("聚合") ;
    System.out.println(result);
    }
    public static List<String> convert(String[] arr) {
    List<String> arraylist = new ArrayList<String>() ;
    Collections.addAll(arraylist, arr);
    return arraylist ;
    }
    }
    运行结果:
    [支付宝, 微信, 银联, 12306]
    此种方法Collections工具的addAll方法,建议使用.
    第四种方法:for(Element e : array) { list.add(e);}
    public static List<String> convert(String[] arr) {
    List<String> arrayList = new ArrayList<String>();
    for (String s : arr) {
    arrayList.add(s);
    }
    return arrayList ;
    }
    此种方法通过for循环添加,建议使用.
    第五种方法:Use Guava :Lists.newArrayList(aStringArray);
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.List;
    import com.google.common.collect.Lists;
    public class TestArray2List {
    public static void main(String[] args) {
    String array[] = { "支付宝", "微信", "银联", "聚合" };
    List<String> result = convert(array) ;
    result.add("12306") ;
    result.remove("聚合") ;
    System.out.println(result);
    }
    public static List<String> convert(String[] arr) {
    return Lists.newArrayList(arr) ;
    }
    }
    此种方法,需要引入google Guava的jar包,使用maven的课添加如下依赖:
    <dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>20.0</version>

    </dependency>

   本篇文章是有武汉Java为您呈现,希望给您带来更多更好的文章

更多武汉Java培训机构相关资讯,请扫描下方二维码

武汉Java培训机构

上一篇:关于java中的线程饥饿以及锁的公平讲解
下一篇:为什么Java是三门编程语言之一

简单介绍Java中的归并排序

Java培训机构是否有必要存在

PHP和Java,你想学哪个?

Java学习的开发阶段

选择城市和中心
贵州省

广西省

海南省

有位老师想和您聊一聊