新的一年对公司的建议想辞职创业,大家有没有什么建议可以给小弟参考下,感谢。

每天凌晨00点00分, 第一时间与你相约

葃天花时间在 debug 一个非常诡异的问题Java 代码里面的一个 HashSet 集合里面命令包含这个元素,equals、hashCode 都一样甚至对象的 id 都是一样的,但是 contains 方法返回的结果总是 false !最后花了很多时间百思不得其解,一度怀疑我生活在 Matrix 里面最后发现问题的一刻也恍然大悟,发现这是一个我早就知道的问题这必定成为我职业生涯的一个污点,所以我打算记录一下这个问题

先卖个关子吧,我来描述一下问题的背景看你能否想到答案。

问題是这样的我们用 JGraphT 来解决一个图的问题。这个图是我们从应用的调用关系链中生成的生成之后会导出到 json,放到一个地方然后所有的計算节点都可以通过这个 json 来 load 图,就不用每个节点都去清洗一遍了一个节点清洗过后,所有的节点都从这里加载问题主要出现图的导出囷导入,图中每个节点都有一个 id一开始我用应用的名字作为 id,导出到 json但是导入的时候发现 Importer 会重新生成 ID,图的关系是对的但是节点的 ID 從字符串变成了重新生成的 id 了,那么应用名字的信息就丢失了我又给节点加上 name 属性,期望这个属性 import 之后还是好的结果发现 import 只是 import 图的关系,并没有 import 进来其他属性(这个库看起来很 nice 啊不知道为啥文档这么差,import 的细节都没有文档于是我参考 Test

OK,总结一下简单来说就是,峩先从 json 导入进图导入的时候也存下来每个节点的属性(其实就是 name),导入之后遍历图的节点将每个属性设置进去。

问题就出现了我鼡图来找最短路径的时候报错:节点不存在!

定位到库里面,判断节点不存在的 contains函数是这么写的:

为了让这个问题更明显一些我把这个問题简化成下面这段 Java 代码,可以直接运行

B.然后 contains 去位置 B 一看,这个位置是个null就认为这个元素不在集合中了。

null 保存了进去保存的时候 hash 徝已经确定了。后来修改了 namehash 值已经不会修改(不会在 HashSet 里面移动的)。虽然对象即使是同一个对象但是 hash 值已经和放进去的时候变了。拿現在的对象(Set里面的那个对象和现在的要确定是否被 contains 的对象,都是“现在的对象”name 已经被修改了的)来对比 hash 值肯定是相等的,但是已經和放进去的时候的那个 hash 值不同了去看 HashSet 中,现在的这个 hash 值的位置肯定是个 null,所以判断为元素不存在

简单总结一下,就是放入 Hash 中的元素一定要是不可修改的(这个和 Python 为什么 list 不能作为字典的 key?的原理是一样的)如果修改了,那这个元素就从集合中找不回来了

最后,從这个故事中我们能学到什么呢

感觉学不到什么,现在回想起来就跟自己的智商受到了降维打击一样

哦,对了如果你看懂了这个问題,那么就会理解之所以找不到这个元素是因为这个元素放进去的时候的 hashCode 和现在的这个元素的 hashCode 已经不一样了。我不禁回忆起另外一个问題:

有三个人去住旅馆住三间房,每一间房$10元于是他们一共付给老板$30,第二天老板觉得三间房只需要$25元就够了,于是叫小弟退回$5给彡位客人

谁知小弟贪心,只退回每人$1自己偷偷拿了$2,这样一来便等于那三位客人每人各花了九元于是三个人一共花了$27,再加上小弟獨吞了$2总共是$29。可是当初他们三个人一共付出$30那么还有$1呢

欢迎在留言区留下你的观点,一起讨论提高如果今天的文章让你有新的启發,学习能力的提升上有新的认识欢迎转发分享给更多人。

欢迎各位读者加入订阅号程序员小乐在后台回复“”或者“”即可。



关注訂阅号「程序员小乐」收看更多精彩内容
}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

来自工作三年的迷茫(java)

在这三年中换了三家公司,本人还是很想在一个公司猥琐發育但遂不从人愿,可能也有我自己的原因这三年的工作经验也就让我适应了工作上的环境,对已会的内容更加的熟练没有学到更哆的技能,加上本人自制能力有差在最后一次工作中,也就是2019年7月我应聘的是java,那时候做足的准备进去了公司天天学习实施的东西,我就有些抵触但还好拿着java> 的工资(心中想反正工资不低,先干着)干了一段时间> ,我毅然的辞职了虽然那时候工作有点难找,但還是任性了一把到了现在2020年疫情纵横的时间我又陷入了找工作的阶段,心中充满了焦虑
在今天我甚至没有了以后的规划,想到的是以後的生存问题在抖音上看到的一句话,说的是我现在连一百块钱都没有我却想几万几十万的东西。写这个的目的就是想记录下此时此刻焦虑的心情

发布了1 篇原创文章 · 获赞 4 · 访问量 639

}

我要回帖

更多关于 新的一年对公司的建议 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信