目录
说明
在编程中我们一直会思考,我们如何将我们的代码写得更加好一些,而不至于一直写那些原生的代码,这样会看起来比较繁琐。其次,这里也总结了一些常用的编程技巧。
1、如何优雅地将int[ ] ,char[ ],之类的数组转化成List集合呢?
很多人都会这样说,直接使用
new ArrayList(Array.asList(new int[]{1,2,4}));
但是这样得出来的结果会变成下面的形式:
List<int[ ]> intList = new ArrayList(Array.asList(new int[]{1,2,4}));
上面的不是我们想要的形式
所以我们可以使用流的方式来优雅得解决这个问题
int[] ints = new int[]{1,2,3};
List<Integer> intList = Arrays.stream(ints).boxed().collect(Collectors.toList());
但是如果我们使用我们的包装类数组,如Integer[ ] intergers 的形式,我们就可以直接使用Arrays.asList()的方式来转换。
2、將一个int[] 去重后重新返回这个int[]
int[] newInt = Arrays.stream(arr).distinct.boxed().mapToInt(Integer::intValue).toArray();
3、输出数组
我们一般会使用遍历的方法,但是有一些时候,就非常不想使用遍历的方式来写,想使用一行代码搞定它,所以我们要活用Arrays工具类
int[] ints = new int[]{1,2,3};
System.out.println(Arrays.toString(ints));
4、如何使用一行代码得出数组中的最大最小值
最小值
Integer min = Arrays.stream(array).boxed().min(Comarator.comparing(Integer::intValue)).get();
最大值
Arrays.stream(array).boxed().max(Comparator.comparing(Integer::intValue)).get();
5、如何将Character[]转成String
String str =Arrays.stream(characters).map(String::valueOf).collect(Collectors.joining());
6、如何将char[]转成Character[]
//char[]转Character[]
char[] a = {'j','a'};
IntStream chars = String.valueOf(a).chars();
Stream<Character> characterStream1 = chars.mapToObj(b -> (char) b);
Character[] characters = characterStream1.toArray(Character[]::new);