小提示,本文编写于 2,188 天前,最后编辑于 1,702 天前,某些信息可能有些出入,仅供参考。
最近开发项目时,越发觉得优雅的编程是多么的让人舒心,愉悦;
优雅,干净的代码风格,让人如沐春风,这便是前人栽树,后人乘凉,后来接手的人也会很舒服;而不那么优雅的代码却会让人感到些糟心,甚者头疼欲裂,这便是前人挖坑,后人填坑。
遇到的一些情况记录:
如何取List中前几条数据
一般最简单的办法就是for循环赋值搞定,但不够优雅,加重cpu周期,每一个循环
List<Content> list1 = new ArrayList();
for{int i = 0; i < n; i++}{
list1 .add(list.get(i));
}
下面这种比较则简洁
List currentPageData = ss.subList(5, Math.min(ss.size(), 10));
如何将一个list中相同的值取出来
/**
* @param list
* @param <E>
* @return 比较优雅的获取List中相同的元素
*/
public static <E> List<E> getDuplicateElements(List<E> list) {
// list 对应的 Stream
return list.stream()
// 获得元素出现频率的 Map,键为元素,值为元素出现的次数
.collect(Collectors.toMap(e -> e, e -> 1, (a, b) -> a + b))
// 所有 entry 对应的 Stream
.entrySet().stream()
// 过滤出元素出现次数大于 1 的 entry
.filter(entry -> entry.getValue() > 1)
// 获得 entry 的键(重复元素)对应的 Stream
.map(entry -> entry.getKey())
// 转化为 List
.collect(Collectors.toList());
}