【纪念我的365天】我的创作纪念日
机缘
最开始接触csdn时我从没想过我会是博客的创作者,最初我认为它是一个为我解决问题的作业神器,开始接触编程时什么都不懂,为各种问题查阅资料,可偏偏就是无法越过这道坎。于是机遇巧合之下遇到一个人他教我,也是他大力推荐我开始写作的。从此以后这里就成为了我编程的笔记,每当我忘记一个知识点时我都可以通过搜索关键字来查找,它似乎比我的纸质笔记更加有效。并且在这里我也可以学习很多知识,所以渐渐的写博客成为我学习的一部分。
收获
在csdn中我也收获很多,每次花大量时间和精力换来粉丝的关注和阅读量我都很高兴,这一年来我有七百多粉丝,也获得了很多的鼓励,也认识了一些大佬。我也常常看他人的博客,再与自己的文章对比查缺不足的地方加以改正。前段时间参加蓝桥杯,学起来很吃力,各种查阅资料看不懂无数次想要放弃可是不服气,于是咬着牙继续学。可是各种算法于我来说就是难上加难,于是我开始学习算法,递归、动态规划等算法,可是学习还是很有难度于是我放弃了。继续我的正常学习,又刚好蓝桥杯延迟了我又心动了于是开始各种刷题,既然算法难那我就那基础分,这样我一直坚持到比赛那一天。csdn里有各种题目的多种解决方法,我似乎才发现csdn的好处。
每次写文章我都能加深对这块知识的理解,怎样用简单的语言让读者更好的理解它。比如之前写mysql增删改查,这个只是点我通过图片代码文字三种方式共同描述等等。从刚开始到现在我已经学习了C语言,数据结构,Java,计算机组成原理等,往后我会一直学习。坚持一件事好难好难,我也常常想要放弃,可是我想要放弃的同时有好多博主仍然继续创作,好像我又有了创作的动力。这一年中我写了六十多篇文章,感觉好少好少,往后继续创作希望收获更多的粉丝以及知识点。
成就
这个连地址法是目前写过最好的代码,当初设置头插和尾插两种插入方法,包含静态节点、构造方法、插入、得到。
public class HashBuck {static class Node {public int key;public int value;public Node next;public Node(int key, int value) {this.key = key;this.value = value;}}public Node[] arr;public int size;public HashBuck(){arr = new Node[10];}public void put(int key, int value){//头插法
// int index = key %arr.length;
// Node cur = arr[index];
// //判断链表中是否存在相同的key,存在就更新value
// while (cur != null) {
// if (cur.key == key) {
// cur.value = value;
// return;
// }
// cur = cur.next;
// }
// //如果不存在就 头插法 插入
// Node node = new Node(key, value);
// node.next = arr[index];
// arr[index] = node;
// size++;//尾插法int index = key %arr.length;Node cur = arr[index];//判断链表中是否存在相同的key,存在就更新valuewhile (cur != null) {if (cur.key == key) {cur.value = value;return;}cur = cur.next;}//如果不存在就 尾插法 插入Node cur1 = arr[index];if (cur1 == null){Node node = new Node (key, value);arr[index] = node;size++;}else {while (cur1.next != null) {cur1 = cur1.next;}//尾插法Node node = new Node(key, value);cur1.next = node;size++;}if (loadFactor() >= 0.75){//超载了需要扩容,然而扩容时需要把所有的元素都重新哈希(因为数组的容量变了对应取模的标准也变了)resize();}}private void resize(){Node[] tempArr = new Node[arr.length*2];for (int i = 0; i < arr.length; i++) {//头插
// Node cur = arr[i];
// while (cur != null){
// //记录当前结点的下一个结点位置
// Node curNext =cur.next;
// //结点新的位置
// int newIndex = cur.key%tempArr.length;
// //头插法
// cur.next = tempArr[newIndex];
// tempArr[newIndex] = cur;
// cur = curNext;
// }//尾插法Node cur = arr[i];while (cur != null) {Node curNext = cur.next;int newIndex = cur.key % tempArr.length;Node newCur = tempArr[newIndex];if (newCur == null) {tempArr[newIndex] = cur;} else {while (newCur.next != null) {newCur = newCur.next;}newCur.next = cur;}cur.next = null;cur = curNext;}}arr = tempArr;}private double loadFactor(){return size*1.0/arr.length;}public int get(int key){int index = key %arr.length;Node cur = arr[index];//判断链表中是否存在相同的key,并返回该节点的value值while (cur != null) {if (cur.key == key) {return cur.value;}cur = cur.next;}return -1;}
}
憧憬
往后我会继续创作,梳理思路记录知识,将创作学习坚持到底,将我学习的点点滴滴都记录下来。每一次新的发现,都像是收获一份意外的惊喜;每一次深入的思考,都如同在黑暗中点亮一盏明灯。这份快乐,让我对学习始终充满热情,永不停歇地向前追寻。