首页 > 其他分享 >集合转数组 toArray

集合转数组 toArray

时间:2022-12-16 14:36:31浏览次数:37  
标签:toArray list 数组 集合 array size

使用集合转数组的方法,必须使用集合的 toArray(T[] array),传入的是类型完全一致、长度为 0 的空数组。

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

Object[] objects = list.toArray();

正例:

List<String> list = new ArrayList<>(2);
list.add("aaa");
list.add("bbb");
String[] array = list.toArray(new String[0]);
System.out.println(Arrays.toString(array));

说明:使用 toArray 带参方法,数组空间大小的 length:

1)等于 0,动态创建与 size 相同的数组,性能最好。

2)大于 0 但小于 size,重新创建大小等于 size 的数组,增加 GC 负担。

3)等于 size,在高并发情况下,数组创建完成之后,size 正在变大的情况下,负面影响与 2 相同。

4)大于 size,空间浪费,且在 size 处插入 null 值,存在 NPE 隐患。

 

来源: Java开发手册1.7.1 - (六) 集合处理 - 9

标签:toArray,list,数组,集合,array,size
From: https://www.cnblogs.com/ooo0/p/16987274.html

相关文章

  • 删除/去掉数组中一个元素或者多个元素
    <?php$source="322,377,3322";//按逗号分离字符串$arr=explode(',',$source);$tmp="322";for($i=0;$i<count($arr);$i++){if($tmp==$arr[$i])unset($arr[$i......
  • 万字长文深入理解java中的集合-附PDF下载
    目录​​1.前言​​​2.List​​2.1fail-safefail-fast知多少​​​2.1.1Fail-fastIterator​​​​2.1.2Fail-fast的原理​​​​2.1.3Fail-safeIterator​​​......
  • LeetCode 53_最大子数组和
    LeetCode53:最大子数组和题目给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例......
  • 数组的概念使用
    数组的语法:1、 Java语言中的数组是一种引用数据类型。不属于基本数据类型。数组的父类是object。2、 数组是一个容器,可以容纳多个元素。(数组是一个数据的集合。)3、 数组......
  • python 操作redis有序集合
      https://feeler.blog.csdn.net/article/details/103100452?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogComme......
  • java集合类——Stack栈类与Queue队列
      今日走读代码时,遇到stack栈类,特查看java的API文档,总结如下:Stack继承Vector类,它通过五个操作对类Vector进行了扩展。栈是后进先出的。栈提供了通常的push和pop......
  • 计算机中的数学【集合论】现代数学的共同基础
    数学如何一步步从初级向高级发展,更高级别的数学对于具体应用究竟有何好处?集合论:现代数学的共同基础现代数学有数不清的分支,但是,它们都有一个共同的基础——集合论——因为......
  • C语言中将二维数组作为函数参数来传递
    c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下:方法一, 形参给出第二维的长度。例如:#include<stdio.h>voidfunc(intn,char str[][5]){ inti; f......
  • [LeetCode]004-寻找两个正序数组的中位数
    >>>传送门题目给定两个大小分别为m和n的正序(从小到大)数组 nums1和 nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为O(log(m+n))。......
  • Java-数组4-笔记
    1.数组的作用就是一个容器,用于在程序中存储一批同种类型的数据2.数组的定义静态初始化数组格式1数据类型[]数组名称=new数据类型[]{元素1,元素2,元素3,....}格式2数据类型[......