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

集合转数组的方法_数组与集合的区别数组集合转换数组变字符串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);
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • velocity语法[通俗易懂]

    velocity语法[通俗易懂]一:基本语法:1.#set(#a="a")$a##输出语句时直接写变量的名称即可2.判断语句:#if($a=="a")##判断语句没有括号,也是

  • cnn程序流程图_深度学习(一)——CNN算法流程

    cnn程序流程图_深度学习(一)——CNN算法流程深度学习(一)——CNN(卷积神经网络)算法流程0引言20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络(ConvolutionalNeuralNetworks-简称CNN)。现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前…

  • JavaScript设计模式—-策略模式[通俗易懂]

    JavaScript设计模式—-策略模式[通俗易懂]声明:这个系列为阅读《JavaScript设计模式与开发实践》—-曾探@著一书的读书笔记1.策略模式的定义将不变的部分和变化的部分隔开是每个设计模式的主题。定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。2.策略模式的目的将算法的使用与算法的实现分离开来。3.传统语言中的策略模式和JavaScript中的策略模式对比3.1.传统语言中的策略模式使用策略模式来实现计算奖金v

  • 计算机二级考试公共基础知识题库_公共基础知识计算机二级

    计算机二级考试公共基础知识题库_公共基础知识计算机二级计算机等级考试二级必须考公共基础知识,计算机二级考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。考试科目:语言程序设计(C、C++、Java、VisualBasic、WEB)、数据库程序设计(VisualFoxPro、Access、MySQL)、办公软件(MSOffice高级应用)共九个科目。新增”MySQL数据库程序设计”、”WEB程序设计”、”MSOffice高级应用…

  • linux安装jdk8[通俗易懂]

    目录1.下载jdk82.源码包解压3.配置jdk环境变量4.测试是否安装成功操作系统:Centos6.464位工具:Xftp5、Xshell51.下载jdk8方法一:官网手动下载下载Linux环境下的jdk1.8http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-21…

  • DeviceIoControl端口隐藏

    DeviceIoControl端口隐藏DeviceIoControl端口隐藏通过HookTCP驱动程序的Irp分派例程(irpStack->MajorFunction[IRP_MJ_DEVICE_CONTROL])来隐藏应用层查询端口信息#include<ntddk.h>#defineCO_TL_ENTITY0x400#defineCL_TL_ENTITY0…

发表回复

您的电子邮箱地址不会被公开。

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