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

集合转数组的方法_数组与集合的区别数组集合转换数组变字符串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);有时候需要让集合围成数组,因为有时需要限定对集合中的元素操作,不需要对该…


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


相关推荐

  • 3.4 《数据库系统概论》之数据查询—SELECT(单表查询、连接查询、嵌套查询、集合查询、多表查询)

    3.4 《数据库系统概论》之数据查询—SELECT(单表查询、连接查询、嵌套查询、集合查询、多表查询)文章目录0.前言1.思维导图2.Student/SC/Course表数据及结构3.SELECT语句的一般格式4.单表查询(1)选择表中的若干列①查询指定列②查询全部列③查询经过计算的值❶算术表达式❷字符串常量及函数❸使用列别名改变查询结果的列标题(2)选择表中的若干元组(行)①关键词DISTINCT去掉表中重复的行②查询满足条件的元组(行)❶比较大小❷确定范围❸确定集合❹字…

    2022年6月12日
  • java pojo 是什么_什么是POJO「建议收藏」

    java pojo 是什么_什么是POJO「建议收藏」POJO(PlainOldJavaObjects)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。在Java应用程序中的角色使用POJO名称是为了避免和EJB混淆起来,而且简称比较直接.其中有一些属性及其gettersetter方法的类,没有业务逻辑,有时可以作为VO(value-object)或dto(DataTransformObject)…

    2022年5月28日
  • 测试用例设计的八大要素「建议收藏」

    测试用例设计的八大要素「建议收藏」1、测试用例的八大要素用例编号和其他编号一样,测试用例编号是用来唯一识别测试用例的编号,要求具有易识别和易维护性,用户可以很容易根据用例编号获取到相应用例的目的和作用,在系统测试用例中,编号的一般格式为A-B-C-D这几部分的作用分别如下:A:产品或项目类型,如CMS(内容管理系统)、CRM(客户关系管理系统)B:一般用来说明用例的属性,如ST(系统测试)、IT(集成测试)、UT(单元测试)C:测试需求的表示,说明该用例针对的需求点,可包括测试项和测试子项等,如文档管理、客户投诉信息管理等。

    2022年6月28日
  • H2内存数据库的函数「建议收藏」

    每个数据库为了使用者的查询简便性以及使用效率,都有专门提供一些函数给使用者进行使用,H2也同样如此,虽然没有oracle那么多强大的函数,但是一般需求的使用还是能够满足,下面就简单介绍下都有哪些函数一、函数的分类以及名称1、聚合函数(AggregateFunctions) AVGBOOL_ANDBOOL_ORCOUNTGROUP_CONCAT MAXMIN…

    2022年4月15日
  • php ora01017,使用dblink出现ORA-01017

    php ora01017,使用dblink出现ORA-01017本地的Oracle数据库是版本是10g的,远程的数据库版本版本是11g,在本地建数据库连接后执行测试查询语句竟然出错,用户名/密码明明本地的Oracle数据库是版本是10g的,远程的数据库版本版本是11g,在本地建数据库连接后执行测试查询语句竟然出错,用户名/密码明明是对的。SQL>createdatabaselinkDBLINK_TESTconnecttotestidenti…

    2022年5月31日
  • 7-1 判断回文字符串

    7-1 判断回文字符串7-1判断回文字符串(15分)输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。输出格式:输出在第1行中输出字符串。如果它是回文字符串,在第2行中输出Yes,否则输出No。输入样例1:level输出样例1:levelYes输入样例2:1+2=2+1=输出样例2:1+2=2+1=No双指针法#include<s

    2022年5月29日

发表回复

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

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