1. int 和 Integer的转换
int[] 转 Integer[]
int[] ints = new int[];
Integer[] integers = Arrays.stream(ints).boxed().toArray(Integer[]::new);
Integer[] 转 int[]
Integer[] integers = new Integer[];
int[] ints = Arrays.stream(integers).mapToInt(Integer::valueOf).toArray();
2. int 和 String 的转换
String[] 转 int[]
String[] strs = new String[];
int[] ints = Arrays.stream(strs).mapToInt(Integer::parseInt).toArray();
int[] 转 String[]
int[] ints = new int[];
String[] strs= Arrays.stream(ints).mapToObj(String::valueOf).toArray(String[]::new);
int[] 转 String
int[] ints = new int[];
String s = Arrays.stream(ints).mapToObj(String::valueOf).collect(Collectors.joining(""));
3. List 和 int 的转换
List 转 int[]
List<Integer> list = new ArrayList<>();
int[] ints = list.stream().mapToInt(Integer::intValue).toArray();
int[] 转 List
int[] ints = new int[];
List<Integer> list = Arrays.stream(ints).boxed().collect(Collectors.toList());
4. int数组求最值
int[] 最大值
int[] ints = new int[];
int max = Arrays.stream(ints).max().orElse(0);
orElse
方法设置一个默认值(这里设置为0),以防止找不到最大值时出现空指针异常。
int[][] 最大值
int[][] ints = new int[][];
int max = Arrays.stream(ints).flatMapToInt(Arrays::stream).max().orElse(0);
flatMapToInt
方法将二维数组转换成一维流
orElse
方法设置一个默认值(这里设置为0),以防止找不到最大值时出现空指针异常。
5. 数组求和
int[] 求和
int[] ints = new int[];
int sum = Arrays.stream(ints).sum();
int[][] 求和
int[][] ints = new int[][];
int sum = Arrays.stream(ints).flatMapToInt(Arrays::stream).sum();
List 求和
List<Integer> list = new ArrayList<>();
int sum = list.stream().mapToInt(Integer::intValue).sum();
6. 填充int数组
int[] 填充
int[] ints = new int[];
Arrays.fill(ints, 1);
int[][] 填充
int[][] ints = new int[][];
Arrays.stream(array).forEach(row -> Arrays.fill(row, 1));