在Java开发中,我们经常需要在数组(Array)和集合(Collection,如List、Set等)之间进行相互转换。无论是从数据库读取数据后处理,还是在算法实现中临时存储元素,掌握Java数组转集合和Java集合转数组的方法都至关重要。
数组是固定长度的,而集合(如ArrayList)是动态可变的。有时我们需要将静态数据(数组)转换为可动态操作的集合;有时又需要将处理后的集合结果转回数组以兼容某些API。因此,掌握这两种转换方式非常实用。
最常用的方式是使用Arrays.asList()方法,但要注意其返回的是一个固定大小的列表,不能直接添加或删除元素。
import java.util.*;public class Main { public static void main(String[] args) { String[] arr = {"Apple", "Banana", "Cherry"}; // 转换为List List<String> list = Arrays.asList(arr); System.out.println(list); // 输出: [Apple, Banana, Cherry] // 注意:以下操作会抛出 UnsupportedOperationException // list.add("Durian"); }}
如果你需要一个可修改的List,可以将结果传入new ArrayList<>()构造器:
List<String> modifiableList = new ArrayList<>(Arrays.asList(arr));modifiableList.add("Durian"); // ✅ 可以正常添加System.out.println(modifiableList); // [Apple, Banana, Cherry, Durian] 将List转换为数组通常使用List.toArray()方法。注意要传入一个类型匹配的数组作为参数,以确保返回的是正确类型的数组(而不是Object[])。
List<String> list = Arrays.asList("Apple", "Banana", "Cherry");// 创建目标数组(长度可为0,Java会自动扩容)String[] arr = list.toArray(new String[0]);// 或者指定长度(但不推荐,容易出错)// String[] arr = list.toArray(new String[list.size()]);System.out.println(Arrays.toString(arr)); // [Apple, Banana, Cherry] 💡 小贴士:使用 new String[0] 是更安全、更高效的做法,JVM会自动创建合适大小的新数组。 import java.util.*;public class ArrayAndListConversion { public static void main(String[] args) { // 1. 数组 → 可变List String[] fruits = {"Apple", "Banana"}; List<String> fruitList = new ArrayList<>(Arrays.asList(fruits)); fruitList.add("Cherry"); // 2. List → 数组 String[] newFruits = fruitList.toArray(new String[0]); // 3. 验证结果 System.out.println("Original array: " + Arrays.toString(fruits)); System.out.println("Modified list: " + fruitList); System.out.println("Converted back to array: " + Arrays.toString(newFruits)); }} 输出结果:
Original array: [Apple, Banana]Modified list: [Apple, Banana, Cherry]Converted back to array: [Apple, Banana, Cherry]
通过本教程,你已经掌握了:
✅ 如何将Java数组转集合(并创建可修改版本)
✅ 如何将Java集合转数组(避免类型错误)
✅ 常见陷阱与最佳实践
这些技巧在日常开发中极为常用,尤其在处理API参数、数据清洗和算法实现时。建议多加练习,熟练掌握 ArrayList与数组互转 的各种场景。
记住关键词:Java数组转集合、Java集合转数组、ArrayList与数组互转、Java List和数组转换——它们是你搜索相关问题时的核心SEO关键词!
本文由主机测评网于2025-12-16发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025128581.html