数组与List的相互转换

数组与List的相互转换1.List转换为数组直接调用ArrayList中的toArray方法就可以实现。List接口中,toArray有两个重载的方法:Object[]toArray();T[]toArray(T[]a);可见toArray可以用无入参的方式调用,返回一个Object数组;也可以用指定返回类型的方式调用,返回一个指定类型的数组。@Testpublicvoidtest()

大家好,又见面了,我是你们的朋友全栈君。

项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

1.List转换为数组

直接调用ArrayList中的toArray方法就可以实现。

List接口中,toArray有两个重载的方法:

Object[] toArray();

<T> T[] toArray(T[] a);

可见toArray可以用无入参的方式调用,返回一个Object数组;也可以用指定返回类型的方式调用,返回一个指定类型的数组。

    @Test
    public void test() {
        List<Object> rawList = new ArrayList();
        rawList.add("0");
        rawList.add("1");
        String[] arr = rawList.toArray(new String[rawList.size()]);
        for(String each:arr) {
            System.out.println(each);
        }
    }

2.数组转换为List

如果需要将数组转为List,只需要使用Arrays.asList方法即可。

    @Test
    public void t5() {
        String[] arr = {"a","b","c"};
        List<String> list = Arrays.asList(arr);
        list.forEach(x -> System.out.println(x));
    }

需要注意的是,asList方法是利用传入参数的类型去创建一个数组,本质上还是一个只是实现了集合的如下方法(size()、toArray()、toArray(T[])、get(int)、set(int,E)、indexOf(Object)、contains(Object))的数组,所以用asList()装换成的集合,只能使用如上方法,如果使用其他方法如: add(E),系统将会抛Java.lang.UnsupportedOperationException(不支持请求的操作)的异常。

    public static <T> List<T> asList(T... a) {
        return new ArrayList<>(a);
    }

    /**
     * @serial include
     */
    private static class ArrayList<E> extends AbstractList<E>
        implements RandomAccess, java.io.Serializable
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150460.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • flowable camunda activiti 功能对比

    flowable camunda activiti 功能对比flowablecamundaactiviti三个框架都是从jbpm框架诞生出来的,先是有jbpm4,然后出来了一个activiti5,activiti5发展一段时间,又出来了一个Camunda。activiti5发展了4年,紧接着出来了一个flowable。本文重点对flowablecamunda两个框架的功能对比。对比的camunda版本是7.10.0,flowable框架的版本…

    2022年5月21日
    164
  • C++中string append函数的使用与字符串拼接「建议收藏」

    C++中string append函数的使用与字符串拼接「建议收藏」常用的函数原型:basic_string&amp;amp;amp;append(constbasic_string&amp;amp;amp;str);basic_string&amp;amp;amp;append(constchar*str);basic_string&amp;amp;amp;append(constbasic_string&amp;amp;amp;str,size_typeindex,size

    2022年6月24日
    28
  • 改变Ubuntu18.04初始键盘布局

    改变Ubuntu18.04初始键盘布局改变 Ubuntu18 04 初始键盘布局安装 Ubuntu 的时候把键盘布局选择成了英文 英国 然后键盘符号就是一团糟 把 打成 很是难受 然后在网上搜索都是依靠代码调出的图形界面来处理 结果重启之后键盘又恢复了原来的样式 可能不适合我的情况吧 自己摸索了以下 发现很简单 用不到那些代码 设置 gt 区域和语言在输入源里选择英语 英国 点击 再点击 选择英语 美

    2025年6月12日
    0
  • android expandablelistview横向,expandableListView 总结[通俗易懂]

    android expandablelistview横向,expandableListView 总结[通俗易懂]实现效果图:expandableListViewgroupIndicator图片默认是在左边,而且比较难看,而我要的是实现groupIndicator在右边自定义图片,换图片最简单的就是直接copy系统@android:drawable/expander_group?android:attr/expandableListPreferredItemIndicatorLeft?android…

    2022年6月16日
    35
  • android:layout_weight详解_什么是layout_weight

    layout_weight 用于给一个线性布局中的诸多视图的重要度赋值。 所有的视图都有一个layout_weight值,默认为零,意思是需要显示.多大的视图就占据多大的屏幕空间。若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight值以及该值在当前屏幕布局的整体, layout_weight值和在其它视图屏幕布局的layout_weight值

    2022年3月9日
    52
  • UVa 414 – Machined Surfaces

    UVa 414 – Machined Surfaces题目:n个由X和空格组成的串,两边有至少一个X,将n个串压缩,每次每行消除一个空格,问到不能消除时剩余的空格。分析:简单题。统计全体空格数sum_b和最少空格数min_b,则结果就是sum_b-n*min_b。注意:利用gets或者getline读入串。#include#include#include#includeusingnamespacestd;

    2022年5月29日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号