目录
说明
在编程中我们一直会思考,我们如何将我们的代码写得更加好一些,而不至于一直写那些原生的代码,这样会看起来比较繁琐。其次,这里也总结了一些常用的编程技巧。
1、获取集合的倒数第k个元素
我们的集合元素下标是从0开始的,如果要得到集合中的倒数第k个元素,只需要:list.size() - k即可
linkedList.get(linkedList.size() - k);
2、将一个集合快速复制到另一个集合中
如何将一个集合快速复制到另一个集合中,而不是new一个新的集合遍历之前的集合?
LinkedList<Object> linkedOne = new LinkedList<>();
linkedOne.add(1);
linkedOne.add(2);
linkedOne.add(3);
LinkedList<Object> linkedTwo = new LinkedList<>(linkedOne);
System.out.println(linkedTwo);
3、将一个集合按照k值切割为多个小集合
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
List<Integer> collect = list;
int k = 2;
int i =0;
while (collect.size() >= k ) {
collect = list.stream().skip(i * k).limit(k).collect(Collectors.toList());
System.out.println(collect+":size-->"+collect.size());
i++;
}
注意:这个skip()不是从下标0开始的,是从1开始的。
4、如何反转一个集合中所有的元素
反转集合中的元素我们不能使用stream流计算,我们使用Collections工具类。
List<Integer> list = new ArrayList<>();
Collections.reverse(list );
5、如何使用一行代码得出集合中的最大最小值
最小值
List<Integer> list = new ArrayList<>();
Integer min = list.stream().min(Comparator.comparing(Integer::intValue)).get();
最大值
List<Integer> list = new ArrayList<>();
Integer min = list.stream().max(Comparator.comparing(Integer::intValue)).get();
6、如何将一个List转成一个Array
List<Integer> list = new ArrayList<>();
int[] array = list.stream().mapToInt(Integer::intValue).toArray();