zoukankan      html  css  js  c++  java
  • List 与 数组 互转

    1、List转数组

      采用API中的T[]   List.toArray(T[] a) 方法  ,不能直接使用  (T[])list.toArray()

      因为数组不能够直接强制转换,例如

            Object[] objs={"123","456"};
            String[] strings=(String[])objs;
            System.out.println(Arrays.toString(strings));
            List<String> list=new ArrayList<>();
            list.add("abc");
            list.add("deg");
            String[] strings=(String[])list.toArray();
            System.out.println(Arrays.toString(strings));

      这样会引发ClassCastException,

      所以不能直接采用这种方法  ,必须使用  toArray(new T[size]);这里的size可以是任意的数字

            List<String> list=new ArrayList<>();
            list.add("abc");
            list.add("deg");
            list.add("teg");
            String[] strings=(String[])list.toArray(new String[1]);
            System.out.println(Arrays.toString(strings));

    2、数组转List

    调用Arrays的asList方法.
    asList
    public static <T> List<T> asList(T... a)返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直写”到数组。)此方法同 Collection.toArray 一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的,并且实现了 RandomAccess。
    此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素:

         List stooges = Arrays.asList("Larry", "Moe", "Curly");
    参数:
    a - 支持列表的数组。
    返回:
    指定数组的列表视图。
    另请参见:
    Collection.toArray()

            String[] strings={"hello","world"};
            List<String> list=Arrays.asList(strings);
            System.out.println(list.toString());

    [hello, world]

    但是Arrays.asList()返回一个受指定数组支持的固定大小的列表。所以不能做Add、Remove等操作

    否则会抛出异常

    Exception in thread "main" java.lang.UnsupportedOperationException
        at java.util.AbstractList.remove(Unknown Source)
        at Main.yuesefu3(Main.java:13)
        at Main.main(Main.java:8)

    如果想要操作链表可以采用下面的方法

    String[] userid = {"aa","bb","cc"};
    List<String> userList = new ArrayList<String>();
    Collections.addAll(userList, userid);
  • 相关阅读:
    Python 字典(Dictionary)操作详解
    MySQL root密码忘记后更优雅的解决方法
    linux下升级python
    mysql实现复杂groupby : GROUP_CONCAT
    Python常用time处理
    spark安装
    python2脚本批量转成python3
    linux zip压缩文件
    dataframe 差集
    012.mysql-mysql查询字段排序规则、数据库编码、表编码,修改排序规则
  • 原文地址:https://www.cnblogs.com/maydow/p/4827108.html
Copyright © 2011-2022 走看看