数组与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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python 生成exe,脱离python环境运行

    python 生成exe,脱离python环境运行1、python环境为Anaconda2,安装的环境为python2.7.12。安装Anaconda2,路径为https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda2默认为base,重新生成一个虚拟环境(默认安装的base安装了太多模块,生成exe运行速度较慢)并切换到python…

    2022年5月27日
    33
  • wireshark中抓取ICMP报文「建议收藏」

    wireshark中抓取ICMP报文「建议收藏」为了更有效地转发IP数据报和提高交付成功的机会,在网络层使用了网际控制报文协议ICMP(InternetControlMessageProtocol)[RFC792]。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成数据报发送出去。ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文…

    2022年4月30日
    456
  • windows snmp trap配置_snmp的trap报文用于

    windows snmp trap配置_snmp的trap报文用于1环境ubuntu16.042.安装sudoapt-getinstallsnmptrapd3.配置备注:配置文件路径,/etc/snmp/snmptrapd.conf在snmpwalk介绍及其用法一文中,介绍过net-snmp的snmpwalk的用法,殊不知,net-snmp还有trap的命令程序,可以用来测试snmp的trap方法(包括inform方法)。这些命令程序是:snm…

    2022年8月20日
    9
  • SPPNet网络模型[通俗易懂]

    SPPNet网络模型[通俗易懂]上篇文章详细阐述了R-CNN网络模型,本篇本章本来准备阐述Fast-RCNN模型的,介于SPP-Net模型有许多技巧性的技术可以在不同模型上使用,所以本篇详细分析下SPP-NetSPPNet论文:https://arxiv.org/abs/1406.4729SPPNet论文翻译:https://blog.csdn.net/mengduan…

    2022年6月9日
    26
  • Linux stat函数_c++ stringbuffer

    Linux stat函数_c++ stringbuffer之前写过一篇关于stat命令的博客,介绍了stat命令的使用和输出信息表示,今天又见到了stat函数,因为输出原因,准备整理一下。stat函数介绍  根据《UNIX环境高级编程》中对于stat函数的解释,stat函数和stat命令一样,都是返回该文件的详细信息。函数定义为:#include&lt;sys/types.h&gt;#include&lt…

    2022年8月21日
    5
  • lock的用法_try block

    lock的用法_try blocktryLock有两个重载的方法,分别如下:booleantryLock();booleantryLock(longtime,TimeUnitunit)throwsInterruptedException;tryLock()会立马返回一个布尔值,如果获得了锁就返回false;如果没有获得锁就返回true。无论是返回true还是false,都会继续执行之后的代码。tryLock(longtime,TimeUnitunit)会等待指定的时间,如果时间到了还没获得锁就返

    2022年10月15日
    0

发表回复

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

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