算法刷题过程中有关包装类和基本类型的注意事项
2023-08-09 14:32:00

包装类型和基本数据类型

int <->Integer

1
2
Integer a = Integer.valueOf(10);
int b = a.intValue();

“123” -> 123

1
int val = Integer.parseInt("123");

Array转化为List

1
List<Integer> integers = Arrays.asList(1, 2, 2, 3, 5);

Integer[] -> List: 用法简单,可使用可变参数的形式;

1
2
3
4
5
Integer[] arr = {8,1,5,6,9};
List<Integer> integers = Arrays.asList(arr);
arr[0] = 666;
System.out.println(integers);
//输出 [666, 1, 5, 6, 9]

int[] -> List: 也可以使用Arrays.asList(T[]),只不过数组必须得是Integer类型,无法使用int类型;

1
2
3
4
5
6
7
int[] arr = {8,1,5,6,9};
// 错误的使用方法
// Arrays.stream(arr).map((x)->{return Integer.valueOf(x);}).collect(Collectors.toList());
List<Integer> collect = Arrays.stream(arr).boxed().collect(Collectors.toList());
arr[0] = 666;
System.out.println(collect);
//输出 [8, 1, 5, 6, 9]

List转化成Array

List-> Integer[]

1
2
3
4
5
6
7
ArrayList<Integer> integers = new ArrayList<Integer>();
for (int i = 0; i < 5; i++) {
integers.add(new Random().nextInt(10));
}
Integer[] integersArray = new Integer[5];
integers.toArray(integersArray);
System.out.println(Arrays.toString(integersArray));

List-> int[]

1
2
3
4
5
6
ArrayList<Integer> integers = new ArrayList<Integer>();
for (int i = 0; i < 5; i++) {
integers.add(new Random().nextInt(10));
}
int[] arr = integers.stream().mapToInt(Integer::valueOf).toArray();
System.out.println(Arrays.toString(arr));