在Java編程中,我們常常需要將數組轉換成List。這種操作非常常見,本文將介紹多種方法用於將數組轉換為List。
一、如何將數組轉為對象
方法1:利用Arrays.asList()方法。
String[] strArray = { "a", "b", "c"}; List list = Arrays.asList(strArray);
方法2:利用Collections.addAll()方法
Integer[] intArray = { 1, 2, 3 }; List list = new ArrayList(); Collections.addAll(list, intArray);
二、如何將數組轉為字符串
方法1:利用Arrays.toString()方法
String[] strArray = { "a", "b", "c" }; String str = Arrays.toString(strArray);
方法2:遍曆數組並將元素拼接成字符串
String[] strArray = { "a", "b", "c" }; StringBuilder sb = new StringBuilder(); for (String str : strArray) { sb.append(str); } String str = sb.toString();
三、如何將數組轉為集合
方法1:利用Arrays.asList()方法
Integer[] intArray = { 1, 2, 3 }; List list = Arrays.asList(intArray);
方法2:利用Collections.addAll()方法
Integer[] intArray = { 1, 2, 3 }; List list = new ArrayList(); Collections.addAll(list, intArray);
四、如何將int數組轉為集合
方法1:利用Java8的Stream API
int[] intArray = { 1, 2, 3 }; List list = IntStream.of(intArray).boxed().collect(Collectors.toList());
方法2:利用Apache Commons Lang3包中的ArrayUtils.toObject()方法
int[] intArray = { 1, 2, 3 }; List list = Arrays.asList(ArrayUtils.toObject(intArray));
五、如何將數組轉為樹形結構
方法1:利用遞歸
class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } public TreeNode arrayToTree(int[] arr, int start, int end) { if (start > end) { return null; } int mid = (start + end) / 2; TreeNode root = new TreeNode(arr[mid]); root.left = arrayToTree(arr, start, mid - 1); root.right = arrayToTree(arr, mid + 1, end); return root; }
方法2:利用隊列
class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } public TreeNode arrayToTree(int[] arr) { if (arr == null || arr.length == 0) { return null; } int i = 0; TreeNode root = new TreeNode(arr[i]); Queue queue = new LinkedList(); queue.offer(root); while (!queue.isEmpty()) { TreeNode node = queue.poll(); if (++i < arr.length) { node.left = new TreeNode(arr[i]); queue.offer(node.left); } if (++i < arr.length) { node.right = new TreeNode(arr[i]); queue.offer(node.right); } } return root; }
六、對象轉為數組
方法1:利用反射
public Object[] toArray(Object obj) throws IllegalAccessException { Class clazz = obj.getClass(); Field[] fields = clazz.getDeclaredFields(); Object[] result = new Object[fields.length]; for (int i = 0; i < fields.length; i++) { fields[i].setAccessible(true); result[i] = fields[i].get(obj); } return result; }
方法2:利用Java8的Stream API
public Object[] toArray(Object obj) throws IllegalAccessException { Class clazz = obj.getClass(); Field[] fields = clazz.getDeclaredFields(); Object[] result = Arrays.stream(fields) .map(f -> { f.setAccessible(true); try { return f.get(obj); } catch (IllegalAccessException e) { throw new RuntimeException(e); } }).toArray(); return result; }
七、arraylist轉為數組
方法1:利用toArray()方法
List list = new ArrayList(); Integer[] arr = list.toArray(new Integer[0]);
方法2:利用Java8的Stream API
List list = new ArrayList(); Integer[] arr = list.stream().toArray(Integer[]::new);
八、怎麼把數組轉為字符串
方法1:利用Arrays.toString()方法
String[] strArray = { "a", "b", "c" }; String str = Arrays.toString(strArray);
方法2:遍曆數組並將元素拼接成字符串
String[] strArray = { "a", "b", "c" }; StringBuilder sb = new StringBuilder(); for (String str : strArray) { sb.append(str); } String str = sb.toString();
九、數組如何轉為集合
方法1:利用Arrays.asList()方法
String[] strArray = { "a", "b", "c" }; List list = Arrays.asList(strArray);
方法2:利用Collections.addAll()方法
String[] strArray = { "a", "b", "c" }; List list = new ArrayList(); Collections.addAll(list, strArray);
本文介紹了多種方法用於將數組轉換為List,每種方法都有利弊。選擇應該根據具體情況而定,建議多加嘗試。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/253786.html