Sometimes we have to convert ArrayList to Array in java program. Today we will look into different java ArrayList to Array conversion options.

有时我们必须在Java程序中将ArrayList转换为Array。 今天,我们将研究不同的java ArrayList到Array的转换选项。

Java ArrayList到数组 (Java ArrayList to Array)

ArrayList in Java is backed by Array. So it’s no wonder, ArrayList provides utility methods to convert ArrayList to Array. Let’s look at a simple program showing how to convert ArrayList to an array in java.

Java中的ArrayList由Array支持。 因此,难怪ArrayList提供了将ArrayList转换为Array的实用方法。 让我们看一个简单的程序,该程序显示如何将ArrayList转换为Java中的数组。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class ArrayListToArray {public static void main(String[] args) {List<String> strList = new ArrayList<String>();strList.add("1");strList.add("2");strList.add("3");String[] strArr = null;strArr = strList.toArray(new String[strList.size()]);System.out.println(Arrays.toString(strArr));}
}

If you will look into ArrayList methods, toArray method is overloaded. The other one is without any argument that returns Object array. However, it’s not recommended because then you will have to cast the object to proper type for any operations.

如果您要研究ArrayList方法,则toArray方法已重载。 另一个没有任何返回Object数组的参数。 但是,不建议这样做,因为这样一来,您必须将对象强制转换为任何操作的正确类型。

用Java将ArrayList转换为Array的其他方式 (ArrayList to Array in Java – other ways)

While passing the array as argument in toArray method, we don’t need to provide the array with exact size. Below code works fine too.

在将数组作为参数传递给toArray方法时,我们不需要为数组提供确切的大小。 下面的代码也可以正常工作。

strArr = strList.toArray(new String[0]);
System.out.println(Arrays.toString(strArr));

If you are using Java 8 or higher, you can use Stream too for converting ArrayList to Array.

如果您使用的是Java 8或更高版本,则也可以使用Stream将ArrayList转换为Array。

strArr = strList.stream().toArray(String[]::new);
System.out.println(Arrays.toString(strArr));

Java ArrayList到阵列–浅拷贝 (Java ArrayList to Array – Shallow Copy)

When we convert ArrayList to Array using above methods, it returns a shallow copy of the elements in the list. So any change in either ArrayList or Array will be reflected in other one too. Below is a simple program showing this behavior.

当我们使用上述方法将ArrayList转换为Array时,它将返回list中元素的浅表副本。 因此,ArrayList或Array中的任何更改也将反映在其他列表中。 下面是一个显示此行为的简单程序。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class ArrayListToArrayMutableObjects {public static void main(String[] args) {Person p1 = new Person("Pankaj");Person p2 = new Person("Lisa");List<Person> pList = new ArrayList<>();pList.add(p1); pList.add(p2);Person[] pArray = pList.toArray(new Person[0]);System.out.println("Original List = "+pList);System.out.println("Created Array from ArrayList = "+Arrays.toString(pArray));//let's change the list and arraypList.get(0).setName("David");pArray[1].setName("Ram");System.out.println("Modified List = "+pList);System.out.println("Modified Array = "+Arrays.toString(pArray));}}class Person {private String name;public Person(String n) {this.name = n;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return this.name;}
}

When we run above java program, it returns the following output.

当我们在上述Java程序上运行时,它将返回以下输出。

Original List = [Pankaj, Lisa]
Created Array from ArrayList = [Pankaj, Lisa]
Modified List = [David, Ram]
Modified Array = [David, Ram]

As you can see that we changed the first element of ArrayList and second element of the Array. However, change is reflected in both ArrayList and Array and at the end, both have the same objects.

如您所见,我们更改了ArrayList的第一个元素和Array的第二个元素。 但是,更改会同时反映在ArrayList和Array中,并且最后都具有相同的对象。

Java ArrayList到阵列–深度复制 (Java ArrayList to Array – Deep Copy)

So if you want to convert ArrayList to Array and want them to be detached, then you will have to do a deep copy and write code for yourself. Below is a refactored code showing how to perform deep copy for converting ArrayList to Array.

因此,如果您想将ArrayList转换为Array并希望将它们分离,那么您将必须进行深层复制并为自己编写代码。 下面是重构代码,显示了如何执行将ArrayList转换为Array的深层复制。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class ArrayListToArrayDeepCopy {public static void main(String[] args) {Person p1 = new Person("Pankaj");Person p2 = new Person("Lisa");List<Person> pList = new ArrayList<>();pList.add(p1); pList.add(p2);//convert ArrayList to Array using deep copyPerson[] pArray = new Person[pList.size()];for(int i =0; i<pList.size(); i++) {Person p = pList.get(i);Person temp = new Person(p.getName());pArray[i] = temp;}System.out.println("Original List = "+pList);System.out.println("Created Array from ArrayList = "+Arrays.toString(pArray));//let's change the list and arraypList.get(0).setName("David");pArray[1].setName("Ram");System.out.println("Modified List = "+pList);System.out.println("Modified Array = "+Arrays.toString(pArray));}}

Below is the output produced by the above application.

以下是上述应用程序产生的输出。

Original List = [Pankaj, Lisa]
Created Array from ArrayList = [Pankaj, Lisa]
Modified List = [David, Lisa]
Modified Array = [Pankaj, Ram]

That’s all for java ArrayList to Array conversion using different methods.

这就是使用不同方法将java ArrayList转换为Array的全部。

Reference: Java ArrayList toArray API Doc

参考: Java ArrayList toArray API文档

翻译自: https://www.journaldev.com/760/java-arraylist-to-array

Java ArrayList到数组相关推荐

  1. java arraylist与数组转换_java中String,数组,ArrayList三者之间的转换

    免费资源网 - https://freexyz.cn/ ArrayList转为String和数组 造一个元素为Integer的ArrayList 为list_int 造一个元素为String 的 Ar ...

  2. java ArrayList转数组

    前言 jdk1.8 toArray()转数组 import java.util.ArrayList;public class TestMain {public static void main(Str ...

  3. java ArrayList 套数组,二维不等长数组

    ArrayList 除了装填普通类型外,还能为数组类型.用法是: ArrayList<ArrayList<Double>> arr = new ArrayList<> ...

  4. java arraylist 转 数组_java ArrayList 转数组 【转】

    1.List转换成为数组.(这里的List是实体是ArrayList) 调用ArrayList的toArray方法. toArray public T[] toArray(T[] a)返回一个按照正确 ...

  5. Java ArrayList的Array,Array的ArrayList

    Today we will learn how to create a Java array of ArrayList. We will also learn how to create an Arr ...

  6. JAVA 基本数据结构--数组、链表、ArrayList、Linkedlist、hashmap、hashtab等

    概要 线性表是一种线性结构,它是具有相同类型的n(n≥0)个数据元素组成的有限序列.本章先介绍线性表的几个基本组成部分:数组.单向链表.双向链表:随后给出双向链表的C.C++和Java三种语言的实现. ...

  7. java中的arrayList(动态数组)与静态数组

    首先,有时用数组时,常把静态数组和动态相混淆,今天来区分一下: 先写一下java中静态数组, 一维数组的声明方式: type var[]; 或type[] var; 声明数组时不能指定其长度(数组中元 ...

  8. java中的LinkedList(链表)与ArrayList(动态数组):(1)简单辨析

    一.数组的缺点(为什么需要引入JAVA集合): 数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合. 首先数组可以存放基本数据类型和对象, ...

  9. Java中arraylist和数组的相互转换

    Java中ArrayList和数组之间的相互转换 ArrayList转为数组 数组转为ArrayList 一.ArrayList转换数组 public static void arrayListToA ...

最新文章

  1. list转datatable
  2. linux卸载已安装的java_Linux 中如何卸载已安装的软件(转载)
  3. java文件下载的utils_Java文件操作Utils
  4. php计算器如何保留输入数字,php如何实现计算器代码
  5. php查询对象是否有某个属性可用,JavaScript 判断对象中是否有某属性的常用方法...
  6. c++编写手机小游戏代码_手机也能编程?盘点这6个可以用手机编程的App!快收藏!...
  7. OpenCV对图片的读写,像素值的访问,修改
  8. Linux下最好用的中文输入法 scim
  9. 学而滑稽之,不亦君子乎
  10. 快速了解微信小程序的使用,一个根据小程序的框架开发的 todos app
  11. NK-RTU980 USB bulk传输
  12. 使用 Applet 渲染 jzy3d WireSurface 波动率曲面图
  13. nodeclub迁移至nodebb
  14. 一个LED灯闪烁的实现
  15. “早知道这些我的公司就不会死”系列(二):Cohort Analysis
  16. 用c语言录入3组学生数据编程,学生信息管理系统C语言编程
  17. 精尽Spring Boot源码分析 - 内嵌Tomcat容器的实现
  18. Power BI学习笔记
  19. 招聘会求贤也蛮拼的 老总的大奔开出来接面试者
  20. 激光雷达(二)——三角测距法和TOF原理

热门文章

  1. python SMTP attachment
  2. 在linux中,boot与uboot有什么区别?
  3. 做一款仿映客的直播App?看我就够了
  4. UI 自定义视图 ,视图管理器
  5. windows平台下在Cygwin中运行Nutch1。2的抓取命令提示JAVA_HOME not set解决方案
  6. 容易忽视但是功能灰常强大的Java API(二. 读写对象)
  7. js面向对象--理解闭包
  8. Windows API-GDI入门基础知识详解(1)
  9. [转载] python将图片进行base64编码, 解码
  10. [转载] gamma函数stiriling公式_数学笔记|特殊函数(1):Gamma函数