集合和数组相互转换[通俗易懂]

集合和数组相互转换[通俗易懂]集合转数组【强制】使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()。说明:使用toArray带参方法,入参分配的数组空间不够大时,toArray方法内部将重新分配内存空间,并返回新数组地址;如果数组元素个数大于实际所需,下标为[list.size()]的数组元素将被置为…

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

集合(List)转数组

      【强制】使用集合转数组的方法,必须使用集合的 toArray(T[] array),传入的是类型完全 一样的数组,大小就是 list.size()。 说  明:使用 toArray 带参方法,入参分配的数组空间不够大时,toArray 方法内部将重新分配 内存空间,并返回新数组地址;如果数组元素个数大于实际所需,下标为[ list.size() ] 的数组元素将被置为 null,其它数组元素保持原值,因此最好将方法入参数组大小定义与集 合元素个数一致。正例:

List<String> list = new ArrayList<String>(2);
list.add("guan");
list.add("bao");
String[] array = new String[list.size()]; 
array = list.toArray(array); 

     反例:直接使用 toArray 无参方法存在问题,此方法返回值只能是 Object[]类,若强转其它 类型数组将出现 ClassCastException 错误

数组转集合(List)

使用Arrays中的asList方法,下边是阿里巴巴Java开发手册中的摘要:

  【强制】使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方 法,它的 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。 说明:asList 的返回对象是一个 Arrays 内部类,并没有实现集合的修改方法。Arrays.asList 体现的是适配器模式,只是转换接口,后台的数据仍是数组。 
    String[] str = new String[] { “you”, “wu” };                                                                                                                                  List list = Arrays.asList(str);                                                                                                                                                      第一种情况:list.add(“yangguanbao”); 运行时异常,下边是异常的原因                                                                                  第二种情况:str[0] = “gujin”; 那么 list.get(0)也会随之修改。 

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

  集合和数组相互转换[通俗易懂]

List和Set相互装换

直接用构造方法就好了:

Set<String> set=new HashSet<>(list);
List<String> test=new ArrayList<>(set);

 

Set转数组同List

      List和Set都是Collection的孩子,而toArray是Collection的抽象方法。

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

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

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


相关推荐

  • jxls能把html转成excel吗,如何用XLSTransformer生成excel文件?jxls的使用方法

    jxls能把html转成excel吗,如何用XLSTransformer生成excel文件?jxls的使用方法jxls的使用方法:1)声明一个XLSTransformer对象,生成方式就是使用new操作符XLSTransformertransformer=newXLSTransformer();2)得到Template的FIle:StringxlsTemplateFileName=this.getClass().getClassLoader().getResource(“template.x…

    2022年7月24日
    5
  • 用启动易合并启动光盘图解教程

    用启动易合并启动光盘图解教程用启动易合并启动光盘图解教程发布时间:2007-04-26来源:矽谷漂移工作组嘿嘿绿盟不提供注册码,我来提供,用户:xdowns.com注册码:2566-11AC-0624-22BCultraiso,激活成功教程版下载地址:[url]http://www.xdowns.com/soft/4/124/2006/So…

    2022年7月14日
    17
  • php网站在服务器上邮件发送不了,在本地可以

    php网站在服务器上邮件发送不了,在本地可以

    2021年9月21日
    34
  • docker下载安装教程_mac docker 性能

    docker下载安装教程_mac docker 性能前言Docker提供轻量的虚拟化,你能够从Docker获得一个额外抽象层,你能够在单台机器上运行多个Docker微容器,而每个微容器里都有一个微服务或独立应用,例如你可以将Tomcat运行在一个D

    2022年7月28日
    26
  • futex_wait_cancelable_wait()方法

    futex_wait_cancelable_wait()方法国内几乎没啥说的,公司很多网站很多还不让上,用手机谷歌还可能会被领导批评,寻思回家查,还强制加班下班还很晚,这是又要马儿跑又要马儿不吃草啊。源码中这块是这么写的+#defineFUTEX_PRIVATE_FLAG 128+#defineFUTEX_CMD_MASK ~FUTEX_PRIVATE_FLAG++#defineFUTEX_WAIT_PRIVATE (FUTEX_WAIT…

    2022年9月15日
    0
  • 传奇sf架设服务器_传奇怎么架设服务器

    传奇sf架设服务器_传奇怎么架设服务器传世SF私服搭建架设教程下载!传奇世界私服搭建教程2017是传世SF私服搭建教程!提供传奇世界h5一键服务端商业版+架设教程-服务器端!传世SF私服游戏介绍传奇世界单机版,小编第一次接触传奇世界是在03年,过去这么多年,发现这款经典游戏竟然还有生命力,在这里给大家整合了网友提供的最新单机版,辅助大家回味高中时代那些青涩的回忆。此单机版很给力。根据官网提供的版本制作,拥有全部的最新地图以及技能怎…

    2022年10月5日
    0

发表回复

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

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