不知小伙伴们是否常常在刷题时,因为数组与容器应该如何使用函数进行转换而感到苦恼。那么这篇文章将会细数各种类型,如一维int数组、二维int数组、char数组、String数组。
一、一维int数组与List<Integer>
public class IntArrayAndIntegerList {
public static void main(String[] args) {
int[] nums = {
1, 2, 3, 4, 5};
//数组转List
//一.逐个添加,基本做法
List<Integer> numList2 = new ArrayList<>();
for (int num : nums) {
numList2.add(num);
}
//二.Stream流计算,推荐做法
//1.数组转流
//2.boxed 基本类型装箱成对象
//3.对象数组转List集合
List<Integer> numList1 = Arrays.stream(nums).boxed().collect(Collectors.toList());
//List转回数组
//一.逐个添加, 基本做法
int[] nums1 = new int[numList1.size()];
for (int i = 0; i < numList1.size(); i++) {
nums[i] = numList1.get(i);
}
//二.Stream流计算,推荐做法
//1.List转流
//2.mapToInt 将对象转成基本类型
//3.List转数组
int[] nums2 = numList1.stream().mapToInt(Integer::valueOf).toArray();
}
}
二、二维int数组与List<int []>
public class InteArrayArrayAndIntArrayList {
public static void main(String[] args) {
int [][] nums = {
{
1, 2, 3}, {
4, 5, 6}, {
7, 8, 9}};
//数组转List,使用Arrays.asList
List <int []> numList = Arrays.asList(nums);
//List转数组,使用list.toArray,传入数组构造器或者类型强转
int [][] nums1 = numList.toArray(new int [3][3]);
int [][] nums2 = (int[][]) numList.toArray();
}
}
三、char数组转String
public class CharArrayAndString {
public static void main(String[] args) {
char [] chars = {
'a', 'b', 'c', 'd'};
//一.数组转字符串,使用String.valueOf
String s = String.valueOf(chars);
//二.字符串转数组,使用String.toCharArray
char [] chars1 = s.toCharArray();
}
}
四、String数组与List<String>
public class StringArrayAndStringList {
public static void main(String[] args) {
String [] strings = {
"abc", "def", "ghi"};
//一.数组转List
List<String> stringList = Arrays.asList(strings);
//二.List转数组
String [] strings1 = stringList.toArray(new String[3]);
String [] strings2 = (String[]) stringList.toArray();
//三.二维数组转List<String>
char [][] chars = {
{
'a', 'b','c'}, {
'd', 'e', 'f'}, {
'h', 'i', 'j'}};
List<String> stringList1 = new ArrayList<>();
for(char [] a : chars){
String tmp = String.valueOf(a);
stringList1.add(tmp);
}
//四.List<String>转二维数组
char [][] chars1 = new char [3][3];
for(int i =0; i < stringList.size(); i ++){
chars1[i] = stringList.get(i).toCharArray();
}
}
}