最近开发项目时,越发觉得优雅的编程是多么的让人舒心,愉悦;

优雅,干净的代码风格,让人如沐春风,这便是前人栽树,后人乘凉,后来接手的人也会很舒服;而不那么优雅的代码却会让人感到些糟心,甚者头疼欲裂,这便是前人挖坑,后人填坑。

遇到的一些情况记录:

如何取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());
    }


医不自医,人不渡己