Java 中数组Array和列表List的转换

这篇具有很好参考价值的文章主要介绍了Java 中数组Array和列表List的转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

主要介绍Java中Java 中数组Array和列表List的转换。

一、数组Array转列表List

1.使用Collections.addAll()方法

使用Collections.addAll()方法,返回的List可以执行新增add方法,但该种方式只针对引用对象,不针对基本数据类型,该种方法效率较高,推荐用法。

int[] arr = new int[]{1, 2, 3};
Integer[] integersArr = new Integer[]{1, 2, 3};
String[] stringsArr = new String[]{"aa", "bb", "cc"};

//方法1:使用Collections.addAll()方法,可以执行新增add方法,只针对引用对象,效率较高,【推荐用法】
List<Integer> list = new ArrayList<>(integersArr.length);
Collections.addAll(list, integersArr);
list.add(22);
System.out.println("list = " + list);

List<String> list01 = new ArrayList<>(stringsArr.length);
Collections.addAll(list01, stringsArr);
list01.add("dd");
System.out.println("list01 = " + list01);

2.使用new ArrayList<>()构造器方法

new ArrayList<>()构造器可以传入Arrays.asList(integersArr)生成的List,这种方式也可以执行新增add方法,但该种方式只针对引用对象,不针对基本数据类型。

List<Integer> list1 = new ArrayList<>(Arrays.asList(integersArr));
list1.add(11);
System.out.println("list1 = " + list1);

3.使用Stream方法

在JDK8的Stream流式计算中,可以对int[],long[],double[]这类基本数据类型数组转换为对于包装类型的数组,当然直接对包装类型的数组也可以转换成列表形式。所以这种方法的优势是可以转换基本数据类型。

List<Integer> list2 = Arrays.stream(arr).boxed().collect(Collectors.toList());
System.out.println("list2 = " + list2);

List<Integer> list21 = Arrays.stream(integersArr).collect(Collectors.toList());
System.out.println("list21 = " + list21);

代码地址:https://github.com/yangnk/JavaHelloworld/blob/58a4ad579d5c5c3467cf89aa25bbd7f55141e7fe/src/main/java/lang/ArrToListTest.java

以上3种转换的执行结果为:

二、列表转数组

1.使用Stream方法

将List转为Array主要使用的Stream方法,需要重点注意的是List转换为int[]和Integer[]有较大区别。

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);

//List<Integer> --> int[]
int[] ints = list.stream().mapToInt(Integer::intValue).toArray();
//List<Integer> --> Integer[]
Integer[] integersArr = list.toArray(new Integer[list.size()]);

//int[]--> Integer[]
Integer[] integersArr1 = Arrays.stream(ints).boxed().toArray(Integer[]::new);
//Integer[] --> int[]
 int[] ints1 = Arrays.stream(integersArr).mapToInt(Integer::intValue).toArray();

System.out.println("ints = " + Arrays.toString(ints));
System.out.println("integersArr = " + Arrays.toString(integersArr));
System.out.println("integersArr1 = " + Arrays.toString(integersArr1));
System.out.println("ints1 = " + Arrays.toString(ints1));

执行结果:

代码地址:https://github.com/yangnk/JavaHelloworld/blob/master/src/main/java/lang/LIstToArrTest.java文章来源地址https://www.toymoban.com/news/detail-695295.html

参考资料

  1. Java数组转List的三种方式及对比:https://blog.csdn.net/x541211190/article/details/79597236
  2. int数组和Integer数组以及List<Integer>集合三者的相互转化:https://blog.csdn.net/ASDQWE09876/article/details/79271992

到了这里,关于Java 中数组Array和列表List的转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java中List,Set,数组Arrays相互转化

    很多场合需要进行转换( 例如力扣中 ) 数组转换其他时比较容易,反过来就需要操作一番 以下转换的方法并不唯一,但确保简洁易懂 常规的方法:从数组中拿出元素放进list 用工具类或者库函数: 这个比较容易,从数组中拿出元素放进set(同时会自动去重) 这个需要操作

    2024年02月11日
    浏览(43)
  • 【已解决】Java 后端使用数组流 Array.stream() 将数组格式的 Cookie 转换成字符串格式

    🎉工作中遇到这样一个场景:远程调用某个接口,该接口需要用户的 Cookie 信息进行权限认证,认证通过之后才可以打通并返回数据。 在后端拿到 httpServletRequest 后,调用 getCookies() 方法,返回的是一个 Cookie 类型的数组。Debug 过程中拿到的 cookie 数据结构如下所示: 因此,需

    2024年02月11日
    浏览(51)
  • Java:List相互转换数组

    经常我们会遇到前端传服务端值为数组的时候我们需要对其转换成集合便于一些其它操作,删除,匹配等操作,今天我们就总结下数组集合相互转换的方法 1、Object[] objArray = arrayList.toArray(); 2、String[] strArray = new String[list.size()]; 3、String[] strArray = list.toArray(new String[list.size()])

    2024年01月18日
    浏览(47)
  • Java中List与数组之间的相互转换

    List列表中存储对象,如 ListInteger 、 ListString 、 ListPerson ,对象数组中同样存储相应的对象,如Integer[]、String[]、Person[],对象数组与对象List的转换可通过如下方式实现: (一)对象List转对象数组 1、toArray()方法 直接调用对象List的toArray()方法转换为对象数组,该方法的参数是

    2024年02月16日
    浏览(48)
  • 【Java】集合List转换为数组【toArray() /stream()流】实现

    在Java中,集合(List 接口的实现类)提供了一个名为 toArray 的方法,用于将集合中的元素转换成数组。该方法有两个主要的重载形式,分别用于不同的情况。 这个方法将集合中的元素复制到一个指定类型的数组中,并返回该数组。 如果指定的数组大小足够容纳集合中的所有

    2024年02月03日
    浏览(45)
  • java将list转为逗号隔开字符串,将逗号连接的字符串转成字符数组,​将逗号分隔的字符串转换为List​(Java逗号分隔-字符串与数组相互转换)

       参考:java将list转为逗号隔开字符串_51CTO博客_list转字符串逗号隔开 Java将字符串转化为数组_java 字符串转数组-CSDN博客  Java逗号分隔-字符串与数组相互转换-CSDN博客  

    2024年02月08日
    浏览(69)
  • Java 连接合并两个数组(Array)的五种方法

    T可以是基础类型,也是类类型

    2024年02月05日
    浏览(58)
  • java 字符串转数组(String to Array)

    java 字符串转数组(String to Array) 数组转List、 判断String数组中是否包含某个字符串

    2024年02月12日
    浏览(50)
  • mybatis-plus中的in的使用,是传Array?还是传List?别再纠结了

    先看个技术题吧。 下面两段代码,执行testFoo,结果分别是什么?   一眼看出来结果的同学,恭喜你,本文内容可以略过。   下面是正文。   我们在查询或更新数据的时候,有时要用到in来过滤数据。比如 SELECT * FROM emax_scbg_order WHERE order_no IN (1305679009380433922,1305405259472830465

    2024年02月14日
    浏览(42)
  • mybatis-plus的in,是传Array还是传List?仔细一看方法签名,瞬间秒懂

    先看个技术题吧。 下面两段代码,执行testFoo,结果分别是什么?   一眼看出来结果的同学,恭喜你,本文内容可以略过。   下面是正文。   我们在查询或更新数据的时候,有时要用到in来过滤数据。比如 SELECT * FROM emax_scbg_order WHERE order_no IN (1305679009380433922,1305405259472830465

    2024年02月13日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包