我的创作纪念日

机缘

        大学的时候,我哥让我去看刘未鹏《暗时间》(这本书也是作者写博客后整理的),觉得很不错。鼓励我去写博客,去分享。那时候,对写博客没想法,倒是“暗时间”的观念很好,这个中学时代也是一直在用,经常去思考题目如何解决。

        毕业后参加工作,我哥又提起写博客的事情,我觉得可以去试试,开始去写,一开始写得不好,或者说内容都比较简单,感觉没深度。我找哥哥谈这个事情,他跟我说:没关系的,去做就好。不用怕内容简单,你踩过的坑,以后也会也有经历的,哪怕是记录一个软件具体怎么使用的,也行,解决了有对应困惑的小伙伴的问题,就很好。精彩和深度都是相对而言的,不要怕,不断去精进就好.....。聊完后,内心就坦然了,哪怕是常见的操作,把常见操作和问题做一个记录,对于新人来说也是也用的。 慢慢的,就开始去写博客,去分享。


收获

        写博客,最大的好处是重新思考。对于学习金字塔,最有效的就是输出,而在输出中,教是最好,实践其次。在写博客的过程中,是一个实践,也算是一个教的过程(要把内容写清楚,明了),就差互动了。而在阅读金字塔中,写博客是最优。

                                        学习金字塔

                                       阅读金字塔

                                         在写博客的过程中,会反思自己是否写得详细,清楚,是否好理解,在这个过程中,也加深了对知识的理解。这也是一个很好的记录,当后面再遇到类似的问题,搜下关键字,快速回顾,加深印象,后续有其它思考,也可以继续补充。

         另外一个是写的内容对于别人是有益处,看到评论的感谢,觉得很好。自己慢慢也养成习惯去关注,去感谢。


日常

        日常工作忙,没办法定期学习(不过刚开始学新的东西也难去分享,更多是在实践应用阶段,会有更多的思考),现在更多是把工作中遇到的一些问题,一些觉得更通用的场景做一个记录。而没有为了写博客而写博客。 也没有强制去做什么,就像刚开始练习跑步的时候,跑到快要累了就停下来,明天再继续,保持那种愉悦的心情,下次就更容易去做。

 


成就

在过去中,自己写得最好的一段码:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yan.web.util.treeNode.listMap1.TreeModel;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;

import java.util.*;
import java.util.stream.Collectors;

public class TreeModelAddLevel {

    public static void main(String[] args){
        List<TreeModel> areaList = initData();
        // 构建树形
        List<TreeModel> treeModels = parseTreeModel(areaList);
        System.out.println("result: "+ JSON.toJSONString(treeModels));
        addLevel(0, treeModels);
        System.out.println("result2: "+ JSON.toJSONString(treeModels));

    }

    private static void addLevel(int level, List<TreeModel> treeModels){
        level++;
        for (TreeModel treeModel : ListUtils.emptyIfNull(treeModels)) {
            treeModel.setLevel(level);
            List<TreeModel> children = treeModel.getChildren();
            treeModel.setChildCount(children.size());
            if(CollectionUtils.isNotEmpty(children)){
                addLevel(level, children);
            }
        }
    }

    private static List<TreeModel> parseTreeModel(List<TreeModel> treeModels) {
        if (CollectionUtils.isEmpty(treeModels)) {
            return Collections.emptyList();
        }
        Map<String, List<TreeModel>> map = new HashMap<>();
        treeModels.forEach(x -> {
            String parentCode = x.getParentCode();
            if (StringUtils.isBlank(parentCode)) {
                parentCode = "-1";
            }
            // 如果 parentCode 没有值,生成空数组,
            List<TreeModel> list = map.computeIfAbsent(parentCode, k -> new ArrayList<>());
            // 如果有值,就把值取出来,相同的parentCode 放到一起
            list.add(x);
        });
        // 从-1开始遍历
        List<TreeModel> result = map.getOrDefault("-1", new ArrayList<>());
        parseChildrenTreeModel(map, result);
        return result;
    }

    private static void parseChildrenTreeModel(Map<String, List<TreeModel>> map, List<TreeModel> treeModels) {
        treeModels.forEach(x -> {
            x.setChildren(map.getOrDefault(x.getCode(), new ArrayList<>()));
            if (!CollectionUtils.isEmpty(x.getChildren())) {
                parseChildrenTreeModel(map, x.getChildren());
            }
        });
    }

    private static List<TreeModel> initData(){
        String areaInfo = "[{\n" +
                "\t\t\"code\": 59,\n" +
                "\t\t\"parentCode\": -1,\n" +
                "\t\t\"name\": \"福建\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 591,\n" +
                "\t\t\"parentCode\": 59,\n" +
                "\t\t\"name\": \"福州\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59101,\n" +
                "\t\t\"parentCode\": 591,\n" +
                "\t\t\"name\": \"鼓楼区\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59195,\n" +
                "\t\t\"parentCode\": 591,\n" +
                "\t\t\"name\": \"晋安区\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59196,\n" +
                "\t\t\"parentCode\": 591,\n" +
                "\t\t\"name\": \"马尾区\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59197,\n" +
                "\t\t\"parentCode\": 591,\n" +
                "\t\t\"name\": \"台江区\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59198,\n" +
                "\t\t\"parentCode\": 591,\n" +
                "\t\t\"name\": \"金山区\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 592,\n" +
                "\t\t\"parentCode\": 59,\n" +
                "\t\t\"name\": \"厦门\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59201,\n" +
                "\t\t\"parentCode\": 592,\n" +
                "\t\t\"name\": \"思明区\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59202,\n" +
                "\t\t\"parentCode\": 592,\n" +
                "\t\t\"name\": \"同安\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59203,\n" +
                "\t\t\"parentCode\": 592,\n" +
                "\t\t\"name\": \"杏林\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59204,\n" +
                "\t\t\"parentCode\": 592,\n" +
                "\t\t\"name\": \"海沧区\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59205,\n" +
                "\t\t\"parentCode\": 592,\n" +
                "\t\t\"name\": \"同安区\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59206,\n" +
                "\t\t\"parentCode\": 592,\n" +
                "\t\t\"name\": \"翔安区\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 593,\n" +
                "\t\t\"parentCode\": 59,\n" +
                "\t\t\"name\": \"宁德\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59301,\n" +
                "\t\t\"parentCode\": 593,\n" +
                "\t\t\"name\": \"宁德\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59302,\n" +
                "\t\t\"parentCode\": 593,\n" +
                "\t\t\"name\": \"古田\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59303,\n" +
                "\t\t\"parentCode\": 593,\n" +
                "\t\t\"name\": \"屏南\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59304,\n" +
                "\t\t\"parentCode\": 593,\n" +
                "\t\t\"name\": \"寿宁\"\n" +
                "\t},\n" +
                "\t{\n" +
                "\t\t\"code\": 59305,\n" +
                "\t\t\"parentCode\": 593,\n" +
                "\t\t\"name\": \"周宁\"\n" +
                "\t}]";
        JSONArray areaArr = JSONArray.parseArray(areaInfo);
        return ListUtils.emptyIfNull(areaArr).stream().map(e -> (JSONObject) e)
                .map(e -> JSONObject.parseObject(e.toString(), TreeModel.class)).collect(Collectors.toList());
    }

}

        因为树形数据,在平时工作中也经常用到。
 


憧憬

       期待自己可以学更多,能力不断变强,有更深的思考,能写出更好的文章内容,再到后面可以出一些“产品”,对于自己和别人有更大的帮助。教是最好的学。

      希望大家都敢于去写博客,去分享。即使无人欣赏 也别忘了给自己鼓掌

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天狼1222

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值