//int[] 转Integer[] Integer[] integers = Arrays.stream(nums1).boxed().toArray(Integer[]::new); /** * int[] 转List<Integer> 去重 * 遇到的问题:直接使用new HashSet<>(Arrays.asList(int[]))去重 * 而int[]和Integer[]之间还有一层转换,所以去重失败 * 通过debug模式查看,发现他会将int[]当成是一个object整体,存放到Set中 */ List<Integer> list = Arrays.asList(integers); Set<Integer> set = new HashSet(list); /** * List<Integer>转int[] * 注意:转化的过程中,转换的基本数据类型要与引用数据类型保持一致 */ int[] ints = list.stream().mapToInt(Integer::valueOf).toArray(); /** * List<Integer>转Integer[] */ Integer[] integers1 = list.stream().mapToInt(Integer::valueOf).boxed().toArray(Integer[]::new); /** * int[] 转List<Integer> 去重排序,lambda表达式 */ List<Integer> collect = Arrays.stream(ints) .boxed() //将数值流转化为 Stream 非特化流 .sorted() //排序 .distinct() //去重 .collect(Collectors.toList());
转载于:https://www.cnblogs.com/lisongyu/p/10142897.html