Java数组到列表(ArrayList)的转换

Sometimes we need to convert Array to List in java, here we will learn two different ways to achieve this. Since List is an interface and ArrayList is the most popular implementation, it’s the same as converting an Array to ArrayList. This situation can come when you are invoking some third party classes returning an array and then you need to change them to list, or to add some more data to the list.

有时我们需要用Java将Array转换为List ,在这里我们将学习两种不同的方法来实现这一点。 由于List是接口,而ArrayList是最流行的实现,因此它与将Array转换为ArrayList相同。 当您调用某些第三方类返回一个数组,然后需要将它们更改为列表,或向列表中添加更多数据时,可能会出现这种情况。

列出的Java数组 (Java Array to List)

There are two built-in ways to convert Array to List in Java.

有两种内置方法可以将Java中的Array转换为List。

  1. Arrays.asList(T… a): This is the simplest way to convert Array to ArrayList in java but this method returns the underlying representation of the array in the form of ArrayList. The returned ArrayList is fixed-sized and any attempt to modify that will result in UnsupportedOperationException at runtime. Also, any change in the array will change the elements in ArrayList also.

    Arrays.asList(T…a) :这是在Java中将 Array转换为ArrayList的最简单方法,但是此方法以ArrayList的形式返回数组的基础表示形式。 返回的ArrayList是固定大小的 ,任何修改尝试都会在运行时导致UnsupportedOperationException 。 同样,数组中的任何更改也会更改ArrayList中的元素。
  2. Collections.addAll(ArrayList<T> strList, T[] strArr): This is the best way to convert array to ArrayList because the array data is copied to the list and both are independent object. Once the array is copied, you can modify both the objects independently. Collections is a very useful class in Java Collections Framework that provides a lot of utility methods.

    Collections.addAll(ArrayList <T> strList,T [] strArr) :这是将数组转换为ArrayList的最佳方法,因为数组数据已复制到列表,并且两者都是独立的对象。 复制数组后,您可以独立修改两个对象。 集合Java Collections Framework中非常有用的类,它提供了许多实用程序方法。

Now let’s see both these methods usage in action.

现在,让我们看看这两种方法的用法。

package com.journaldev.util;


import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;


public class ArrayToArrayList {

    /**
     * This class shows different methods to convert Array to ArrayList
     * 
     * @param args
     */
    public static void main(String[] args) {
        String[] strArr = {"1", "2", "3", "4"};
        List<String> strList = new ArrayList<String>();
        //return the list representation of array
        //any change in array elements will change the arrayList elements also
        strList = Arrays.asList(strArr);
        System.out.println("Original ArrayList from Arrays.asList()");
        for (String str : strList)
            System.out.print(" " + str);
        //change the array element and see the effect is propogated to list also.
        strArr[0] = "5";
        System.out.println("\nChange in array effect on ArrayList");
        for (String str : strList)
            System.out.print(" " + str);
        //below code will throw java.lang.UnsupportedOperationException because
        // Arrays.asList() returns a fixed-size list backed by the specified array.
        //strList.add("5");

        strList = new ArrayList<String>();

        Collections.addAll(strList, strArr);
        //change both the array and arraylist and check if they are independent?
        strList.add("5");
        strArr[0] = "1";
        System.out.println("\nArray to ArrayList using Collections.addAll()");
        for (String str : strList)
            System.out.print(" " + str);

    }

}

The output of the above program is:

上面程序的输出是:

Original ArrayList from Arrays.asList()
 1 2 3 4
Change in array effect on ArrayList
 5 2 3 4
Array to ArrayList using Collections.addAll()
 5 2 3 4 5
Java Array To List Arraylist

Java Array To List

Java数组列表

So now you know which method to use to convert Array to ArrayList based on the requirements.

现在,您知道了根据要求使用哪种方法将Array转换为ArrayList

Here is the video tutorial explaining it in Eclipse.

这是在Eclipse中解释它的视频教程。

演示地址

GitHub Repository. GitHub Repository中找到更多Java Array示例。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值