前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java将列表转换为数组,反之亦然

Java将列表转换为数组,反之亦然

作者头像
用户7886150
修改2021-04-28 17:53:45
3.3K0
修改2021-04-28 17:53:45
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Java程序将ArrayList转换为字符串 ,反之亦然

介绍: 

  在本文中, 我们将快速学习如何将Java List (例如ArrayList )转换为数组,反之亦然。 如果您希望总体上了解有关ArrayList的更多信息,请随时阅读我们有关Java ArrayLists的文章。  

  同时,让我们开始吧!  

 将Java  

  将Java 列表转换为数组非常简单直接。 我们可以使用toArray()方法的两种可用样式之一:  

 //Returns an Object-type array

Object[] toArray()

//Returns an array of type T

T[] toArray(T[] array)

  让我们尝试一下:  

 List<Integer> list = Arrays.asList(1, 2, 3, 4);

Object[] arrayOfObjects = list.toArray();

Integer[] arrayOfIntegers = list.toArray(new Integer[list.size()]);

  toArray(T [] array)方法接受并返回一个数组。 传递数组的主要目的是通知要返回的数组类型:  

  如果传入的数组有足够的空间,则将元素存储在同一数组中,并返回对该数组的引用  如果其空间大于元素数,则首先使用列表元素填充数组,并将其余值填充为null  否则,如果没有足够的空间来存储元素,则会创建,填充并返回具有相同类型和足够大小的新数组  

 将Java数组转换为 

  要将数组转换为Java中的List ,我们可以选择以下方法之一:  

 1.天真的方法(迭代): 

  一种简单的方法是遍历所有数组元素,并将它们添加到新创建的List中:  

 public <T> List<T> convertArrToList(T[] array) {

    List<T> list = new ArrayList<>();

    for(T element : array) {

        list.add(element);

    }

    return list;

}

  我们可以使用上述通用方法轻松地转换类型T的数组:  

 Integer[] arr = {1, 2, 3};

List<Integer> list = c.convertArrToList(arr);

 2.  

  我们还可以在java.util.Arrays类中使用asList()方法来快速构造一个List:  

 public <T> List<T> convertArrToList(T[] array) {

    return Arrays.asList(array);

}

  此方法接受数组作为其参数。  

 3.  

  众所周知, java.util.Collections提供了addAll(Collection c,T ... elements)方法,该方法将所有元素添加到给定的collection c中 。  

  由于List继承自Collection接口,因此可以使用此方法来发挥我们的优势:  

 public <T> List<T> convertArrToList(T[] array) {

    List<T> list = new ArrayList<>();

    Collections.addAll(list, array);

    return list; 

}

 4. Java 8流: 

  从Java 8开始,我们首先可以通过Java数组打开流,然后使用Java Stream Collectors将其元素收集在List中 :  

 public <T> List<T> convertArrToList(T[] array) {

    return Arrays.stream(array).collect(Collectors.toList()); 

}

  对于一组原语,我们将有类似以下内容:  

 int[] array = new int[] { 1, 2, 3 };

List<Integer> list = Arrays.stream(array)

                       .boxed()

                       .collect(Collectors.toList());

 结论: 

  在本教程中,我们研究了如何将Java List转换为数组。 我们还介绍了在Java中将数组转换为List的另一种情况。  

  翻译自: https://www.javacodegeeks.com/2019/03/java-convert-list-array-vice-versa.html

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档