在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-tw/n/253786.html
微信掃一掃
支付寶掃一掃