我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JAVA : ArrayList和数组的转换

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JAVA : ArrayList和数组的转换

一、ArrayList转换为数组

ArrayList提供public T[] toArray(T[] a)方法返回一个按照正确的顺序包含此列表中所有元素的数组,返回数组的运行时类型就是指定数组的运行时类型。

import java.util.ArrayList;import java.util.List;public class Test {      public static void main(String[] args) {          List<String> list=new ArrayList<String>();          list.add("a");          list.add("b");          list.add("c");          int size=list.size();          String[] array = (String[])list.toArray(new String[size]);          for(int i=0;i<array.length;i++){              System.out.println(array[i]);          }      }  } 

二、数组转换为List

其实数组转换成为List的问题,Arrays对象也提供给我们public static List asList(T… a)供我们调用

import java.util.Arrays;  import java.util.List;  public class Test {      public static void main(String[] args) {          String[] array=new String[3];          array[0]="a";          array[1]="b";          array[2]="c";          List<String> list=Arrays.asList(array);          for(int i=0;i<list.size();i++){              System.out.println(list.get(i));          }      }  }

在int数组转化是出现了问题,ArrayList<Integer>如何转化为int[ ]数组:

我们已知 ArrayList转化为数组可以通过ArrayList的toArray()方法实现
这个方法的参数是一个数组,该数组的类型必须为泛型
在这里插入图片描述
但是我们用同样的方法将 String 换为 int 则会报错
在这里插入图片描述
这是因为ArrayList中规定的泛型是Integer,且int[]并不等同于Integer[],因此不能直接转化到int[]

解决方法:

方法一:for循环赋值,其实所有转换都可以这么用,比较好理解。

//1.先创建一个和 list等长的 int数组int[] arr = new int[list.size()];for(int i = 0; i<list.size(); i++){    //2.调用方法    arr[i] = list.get(i);}

或者:(增强for循环)

//1.先创建一个和 list等长的 int数组int[] arr = new int[list.size()];for(a : list){    //2.调用方法    arr[i] = a;}

方法二:使用IntStream(java8新特性)

// 想要转换成int[]类型,就得先转成IntStream。// 这里就通过mapToInt()把Stream调用Integer::valueOf来转成IntStream// 而IntStream中默认toArray()转成int[]。int[] arr = list.stream().mapToInt(Integer::valueOf).toArray();

来源地址:https://blog.csdn.net/qq_44537267/article/details/128525369

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JAVA : ArrayList和数组的转换

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JAVA : ArrayList和数组的转换

一、ArrayList转换为数组 ArrayList提供public T[] toArray(T[] a)方法返回一个按照正确的顺序包含此列表中所有元素的数组,返回数组的运行时类型就是指定数组的运行时类型。 import java.util
2023-08-19

Android中ArrayList和数组相互转换

List—–>数组 在大家开发中应该经常碰到List与数组类型之间的相互转换,举一个简单的例子:package test.test1; import java.util.ArrayList; import java.util.List;
2022-06-06

Java中将数组转换为List

今天就跟大家聊聊有关Java中将数组转换为List,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一.最常见方式(未必最佳)通过 Arrays.asList(strArray) 方式
2023-06-16

nodejs 数组 转换

随着前端技术的不断发展,前端领域的开发工具也越来越多。而在这些工具中,Node.js 可以说是一个非常重要的角色。它让 JavaScript 不再仅仅是一门用于前端的脚本语言,而是可以运行在服务器端的实用语言。Node.js 非常适合用于开发 Web 应用、网络服务器等后端应用。在这篇文章中,我们来探讨一下 Node.js 中数组的转换。## JavaScript 数组Arra
2023-05-23

java中的数组(Array)与列表(ArrayList)的区别

列表(ArrayList)是对数组(Array)的一个加强,分配数组列表和创建数组的方式如下:分配数组列表:new ArrayList(100);创建数组:new Employee[100];在线视频教程推荐:java课程两者之间的区别:一:空间大小1、Arr
java中的数组(Array)与列表(ArrayList)的区别
2016-08-24

java整数与byte数组的转换实现代码

java整数与byte数组的转换实现代码 这里对java中整数与byte数组的转换进行了实现,平时的项目中很少用的到,但是特定需求的时候还是需要的,这里就记录下,亲测可用,实现代码:public class Number
2023-05-31

PHP 数组转 JSON 的高效转换

php 中高效数组转 json 的方法:直接使用 json_encode() 函数。使用 json_force_object 选项强制数组编码为对象。禁用类型检测以提升性能。对于性能关键应用,可采用手工编码方法。json 可用于数据传输和存
PHP 数组转 JSON 的高效转换
2024-05-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录