Java实战小技巧之数组与list互转

可以按照以下步骤将Java数组和List进行互相转换:

将数组转换为List

  1. 使用Arrays类的asList方法将数组转换为List
    java
    String[] array = {"a", "b", "c"};
    List<String> list = Arrays.asList(array);

    这里将String类型的数组转换为List类型的列表,可以类比其他类型的数组和列表。

  2. 注意事项

    • asList方法只对基本数据类型的数组和对象类型的数组有效。如果传入参数是基本数据类型的数组,数组元素会被作为一个对象插入到List中,而不是一个一个元素。所以如果要将整型数组转换为List,应该使用Integer数组。
    • 返回的List是一个不可变的列表,因此无法使用add、remove等方法进行修改。

将List转换为数组

  1. 使用List类的toArray()方法将列表转换为数组
    java
    List<String> list = new ArrayList<>();
    list.add("a");
    list.add("b");
    list.add("c");
    String[] array = list.toArray(new String[list.size()]);

    这里将List类型的列表转换为String类型的数组,可以类比其他类型的列表和数组。toArray()方法需要传入一个数组,数组的大小应该大于等于列表的大小,否则该方法会创建一个新的数组,元素数量为列表的大小。

  2. 注意事项

    • toArray()方法可以传入一个类型相同的数组,来避免在方法中创建新数组。这样做的好处是可以提高性能。
    • 对于ArrayList等可变列表,toArray()方法返回的是数组的副本,对数组的修改不会影响原列表的元素。

示例1

将int类型的数组转换为List类型的列表

int[] array = {1, 2, 3};
List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList());

这里使用Java 8中的stream()方法将基本类型数组转换为流,再使用Boxed()方法将基本类型的流转换为包装类型Integer的流,最后使用collect()方法将流转换为List类型的列表。

示例2

将List类型的列表转换为int类型的数组

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
int[] array = list.stream().mapToInt(Integer::intValue).toArray();

这里先使用Java 8的stream()方法将列表转换为流,再使用mapToInt()方法将流中的Integer类型转换为int类型,最后使用toArray()方法将流转换为int类型的数组。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实战小技巧之数组与list互转 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Java 双指针项目中的实际应用

    背景说明 最近在做财务相关的系统,对账单核销预付款从技术角度来看就是将两个数组进行合并 对账单核销预付款前提条件: 对账单总金额必须等于未核销金额 数据示例 对账单数据 单号 金额 B0001 100 B0002 80 B0003 120 预付款数据 单号 未核销金额 PRE001 110 PRE002 190 结果数据 预付款单号 核销金额 对账单号 PR…

    Java 2023年5月4日
    00
  • Java集合Iterator迭代的实现方法

    下面是关于Java集合Iterator迭代的实现方法的完整攻略: 什么是Java迭代器 Java迭代器是一种设计模式,可以通过这种模式在不暴露集合内部结构的情况下遍历集合中的元素。 Java集合框架中的所有类都实现了java.util.Iterator 接口,这个接口内部定义了三个方法: hasNext():判断当前位置后是否还有元素 next():获取下一…

    Java 2023年5月26日
    00
  • ajax详解_动力节点Java学院整理

    AJAX详解 什么是AJAX AJAX(Asynchronous JavaScript and XML)即异步 JavaScript 和 XML,是一种在Web页面中实现异步数据交互的通信技术。它的核心是 XMLHttpRequest 对象,它可以在不刷新页面的情况下发送和接收数据。 AJAX的优点 页面无需刷新,数据实时更新 能够异步加载数据,减少页面加载…

    Java 2023年5月26日
    00
  • Java创建随机数的四种方式总结

    Java创建随机数的四种方式总结 在Java中,有多种方式可以创建随机数。下面将总结Java创建随机数的四种方式,并给出两个示例说明。 1. java.util.Random类 使用java.util.Random类可以生成随机数。这种方式通常使用步骤如下: 创建一个Random对象,如Random rand = new Random()。 调用rand对象…

    Java 2023年5月26日
    00
  • 10个微妙的Java编码最佳实践

    下面是“10个微妙的Java编码最佳实践”的详细攻略: 1. 始终使用@Override注解 Java 5 中引入了 @Override 注解,该注解用于表示方法重写。虽然在使用时并不是必须的,但如果我们在重写一个方法时没有添加 @Override 注解,极有可能出现意想不到的错误,比如拼写错误或参数数量不足等。因此,我们应该始终在重写方法时添加 @Over…

    Java 2023年5月19日
    00
  • 如何用Java实现排列组合算法

    下面是关于如何用Java实现排列组合算法的完整攻略: 排列组合算法实现 什么是排列与组合 排列是指选出m个元素,一次排成一个列,有序的称为$m$的排列,记为$A_m^n$ 组合是指选出m个元素,无序的称为${m}$的组合,记作$C_m^n$ 可以发现,排列与组合的关联非常大,在代码实现中,它们也是联系在一起的。 排列算法实现 递归算法 通过递归实现简单,下面…

    Java 2023年5月19日
    00
  • Springboot+SpringSecurity实现图片验证码登录的示例

    下面是“Springboot+SpringSecurity实现图片验证码登录的示例”的完整攻略: 1.准备工作 在开始之前,你需要先了解以下几个知识点: Spring Boot,是一种用于快速创建基于Spring框架的应用程序的方式。 Spring Security,是Spring提供的一个强大且灵活的身份验证和访问控制框架。 验证码,是一种防止机器人或恶意…

    Java 2023年5月20日
    00
  • 使用Java生成jpg与压缩图片为jpg文件的代码示例

    以下是关于使用Java生成jpg并压缩图片为jpg的完整攻略。 1.使用Java生成jpg 要使用Java生成jpg图片,需要使用第三方库——JFreeChart,它可以用于绘制多种类型的图表和图形,其中包括图片。 步骤 引入JFreeChart库: xml <dependency> <groupId>jfree</groupI…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部