集合转数组的方法_数组与集合的区别

集合转数组的方法_数组与集合的区别数组集合转换数组变字符串int[]arr={4,1,8,5,3,5};System.out.println(Arrays.toString(arr));//[4,1,8,5,3,5]1、集合转数组Object[]toArrays()E[]toArrays(E[]e);有时候需要让集合围成数组,因为有时需要限定对集合中的元素操作,不需要对该…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

数组集合转换

数组变字符串
int[] arr = {4,1,8,5,3,5};
System.out.println(Arrays.toString(arr));//[4,1,8,5,3,5]

1、集合转数组

Object[]    toArrays()

E[]         toArrays(E[] e);
有时候 需要让集合围成数组,因为有时需要限定对集合中的元素操作,不需要对该元素进行增删。
这里我们 可以 使用的是Collection接口中的toArray方法。
在使用toArray方法时,可以传入一个指定类型的数组。
那么toArray会返回该类型的数组并存储了集合中的元素。
给toArray方法传递的数组长度该怎么定义呢?
如果传入的数组长度小于集合的长度,那么该toArray方法内部会建立一个新的该类型的数组,并长度和集合一致,来存储集合的元素。
如果传入的数组长度大于集合的长度,那么就使用传入的数组存储集合的元素,没有存储数据的位置为null。
所以传入数组时,该数组长度最好定义成集合的的长度。这就是刚刚好的数组。

例:  Collection<String> c2 = new ArrayList<String>();
    c2.add("c++");
    c2.add("python");
    c2.add("php");
    c2.add("c#");
    System.out.println(c2);

    //想使用数组元素是必须强制转换 相对麻烦
    Object[] obj = c2.toArray();
    System.out.println(((String)obj[1]).length());

    //集合转数组
    /*为了避免强制性转换,调用重载方法,传一个元素类型的数组即可*/
    String[] arr = c2.toArray(new String[0]);
    System.out.println(arr);//[Ljava.lang.String;@15db9742
    System.out.println(arr[1]);//python
    System.out.println(Arrays.toString(arr));//[c++, python, php, c#]
    System.out.println(arr[1].length());//6

2、数组转集合

List        Arrays.asList(数组参数);
        (1)数组存储基本数据类型,则会将该数组作为集合元素存在
        int[] arr = {4,1,8,5,3,5};
        List<int[]>list = Arrays.asList(arr);
        System.out.println(list);//输出地址
       (2)数组存储引用数据类型,则变成集合时,这些元素作为集合的元素存在
        Integer[] arr = {3,1,5};
        List<Integer> list  = Arrays.asLiat(arr);
        System.out.println(list);//输出[3,1,5]

        PS:数组转成的集合,不可进行增删操作(运行异常),可以替换(数组变量会有影响)
        若想增删,将元素存入新集合

        String[] arr1 = {"1","10","a","abc"};
        //将数组转集合
        List<String>list = Arrays.asList(arr1);
        System.out.println(list);
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • 网络综合布线工程后期验收

    网络综合布线工程后期验收

    2021年8月7日
    57
  • cJSON的使用方法

    cJSON的使用方法首先,要介绍一下什么是json格式。一.JSON格式简述JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(StandardECMA-2623rdEdition-December1999)的一个子集。JSON采用完全独立于语言的文本格式,但

    2022年6月29日
    45
  • vite 基础配置

    vite 基础配置兼容老浏览器 默认情况下 Vite 只处理语法转译 且默认不包含任何 polyfill 通过引入 polyfill 可以前往 Polyfill io 查看 这是一个基于用户浏览器 User Agent 字符串自动生成 polyfill 包的服务 通过插件支持 通过插件 vitejs plugin legacy 来支持 它将自动生成传统版本的 chunk 及与其相对应 ES 语言特性方面的 polyfill 兼容版的 chunk 只会在不支持原生 ESM 的浏览器中进行按需加载公共基础路径

    2025年10月27日
    2
  • C++ socket通信遇到的无法解析外部符号「建议收藏」

    C++ socket通信遇到的无法解析外部符号「建议收藏」转载:https://blog.csdn.net/u013617144/article/details/49046925bug:无法正常调用Socket通讯方法解决方案:头文件中加入#pragmacomment(lib,"WS2_32.lib")

    2022年6月28日
    26
  • dw自动滚动图片_DW图片无缝滚动代码

    dw自动滚动图片_DW图片无缝滚动代码DIV的图片无缝滚动,DIV图片上无缝滚动,DIV图片下无缝滚动,DIV图片左无缝滚动,DIV图片右无缝滚动1.先了解一下对象的几个的属性:innerHTML:设置或获取位于对象起始和结束标签内的HTMLscrollHeight:获取对象的滚动高度。scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶…

    2022年7月18日
    15
  • jedispool是什么_redis工具类

    jedispool是什么_redis工具类项目中需要用到缓存减少数据库压力,选择redis作为工具,构建一个jedis池达到实际效果11.JedisPoolCacheUtils<!–https://mvnrepository.com/artifact/redis.clients/jedis引入pom–><dependency><groupId&g…

    2025年9月15日
    6

发表回复

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

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