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

集合转数组的方法_数组与集合的区别数组集合转换数组变字符串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)
上一篇 2026年1月26日 下午9:01
下一篇 2026年1月26日 下午9:43


相关推荐

  • 一文搞懂MySQL索引所有知识点(建议收藏)[通俗易懂]

    一文搞懂MySQL索引所有知识点(建议收藏)[通俗易懂]好家伙!老板看了直呼内行!

    2022年5月24日
    29
  • nbtscan ip地址

    nbtscan ip地址查找网络 192 168 1 0 中 netbios 名字信息 对应命令如下 nbtscan192 168 1 1 254 找到有 netbios 名字后 可以使用如下的命令查看这些主机运行的服务 nbtscan hv192 168 1 1 254 转载于 https www cnblogs com seasonsstory p 3468839 html

    2026年3月26日
    2
  • STM32之sprintf函数[通俗易懂]

    STM32之sprintf函数[通俗易懂]单片机中Sprint函数:说明1:使用该函数时必须包含stdio.h头文件,否则容易卡死程序说明2:sprintf与printf函数的区别:二者功能相似,但是sprintf函数打印到字符串中(将数值转换成对应字符串形式,就是变换成ASCALL码),而printf函数打印输出到屏幕上。在单片机中将数值转换成字符串是sprintf函数最广的用途。Sprint函数具体形式:intsp

    2022年6月29日
    36
  • edger多组差异性分析_使用edgeR进行无重复差异表达分析

    edger多组差异性分析_使用edgeR进行无重复差异表达分析写这篇文章一部分原因是填 2 年前的一个坑转录组入门 7 差异表达分析 另一部分原因是 GQ 最近又在搞一波无重复的差异表达分析 所以专门去学了 edgeR 我个人是不太推荐没有重复的差异表达分析 毕竟统计学上的 p 值是为了证明两个样本的差异是真实存在而不是抽样误差导致 但是你单个样本如何计算变异呢 因此每当别人提问的时候 我个人的建议就是定性看看倍数变化吧 但是如果真的强行要算 p 值 其实也不

    2026年3月17日
    1
  • blender模型(sklearn模型融合)

    前言机器学习中很多训练模型通过融合方式都有可能使得准确率等评估指标有所提高,这一块有很多问题想学习,于是写篇博客来介绍,主要想解决:什么是融合?几种方式融合基本的模型融合组合及适用场景、优缺点等什么是融合?构建并结合多个学习器来完成学习任务,我们把它称为模型融合或者集成学习。不同的模型有各自的长处,具有差异性,而模型融合可以使得发挥出各个模型的优势,让这些相对较弱的模型(学习器)通…

    2022年4月16日
    126
  • Galaxy 平台下 LEfSe 安装与使用教程[通俗易懂]

    Galaxy 平台下 LEfSe 安装与使用教程[通俗易懂]LEfSe(Linea…

    2022年5月5日
    366

发表回复

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

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