这个文章的例子,把我看懵了: https://mp.weixin.qq.com/s/3Fw2vfbkiGCsA_bys40TRg
我不知道怎么说服这位网友,他觉得解题的思路没问题。。。
我能想到的例子:
我的理解是:方向盘不能刹车,是因为它一开始定义的时候就不是用来刹车的,而不是它用了什么机械液压动力或者电子助力,而导致它不能刹车,不管你用什么技术去实现,去制作这个方向盘,它永远还是一样不能刹车。
你可以说方向盘不能刹车的原因是:因为它只能让轮子转向。。。但是你不能反过来说:因为方向盘用了电子助力转向,而导致它不能刹车。那你潜在的意思是说:方向盘还有其他的实现能做到刹车的功能?
我的解释是:不看接口定义的说明而用错了,然后举证说明是里面的各种实现有问题。。。add 方法不管如何实现都是无法替换的元素的,它定义就是在某个位置添加元素。
我刚毕业那几年对知识理解也是会有点很乱,但是也不至于会这样的思考问题。
大家有没有什么好的例子来帮助这位小伙子,他思维经常很绕,总是把简单的问题复杂化。怎么才能帮助他突破思维的困局,思考问题的时候弄的简单一点。
1
dwlovelife 2022-08-10 11:24:24 +08:00
这不是一个定制排序的事么==
|
2
jones2000 2022-08-10 12:05:19 +08:00
“大家有没有什么好的例子来帮助这位小伙子,他思维经常很绕,总是把简单的问题复杂化。怎么才能帮助他突破思维的困局,思考问题的时候弄的简单一点。” 这是优点, 原来 3W 预算的项目,可以报到 30W 的预算,创收呀。
太简单了怎么能赚钱呢, 比如原来 1 个 java 单进程的服务就可以搞定的,报价 3W ,利润太低了,那就拆微服务,上集群,机器采购,这样 300W 不就来了嘛,功能还是原来的功能,甲方乙方都开心,还能扩大就业。 |
4
Qy2FbR 2022-08-10 12:20:50 +08:00 via Android
都冒泡 swap j, j+1 了直接 swap j, n-1 不是更方便快捷
楼主的例子我更看不懂 |
6
MoYi123 2022-08-10 12:32:40 +08:00
这文章真不是在钓鱼? 感觉正常人都不会有这种思路吧...
|
8
chenxytw 2022-08-10 13:26:52 +08:00
单看文章....太像是为了表现自己而强行构造场景。急于证明自己有能力,同时认为能看懂标准库就属于有能力的表现之一,于是强行编了个故事,
|
9
zhhmax 2022-08-10 13:31:03 +08:00
每个人的思维方式本身就有区别,没必要去说服而且你也很难去说服,尊重祝福就完事了。
|
10
fzdwx 2022-08-10 14:12:19 +08:00 1
或许应该用`set`这个方法?
|
11
zxCoder 2022-08-10 14:13:23 +08:00
看不懂你想干嘛
|
12
byte10 OP |
14
11232as 2022-08-10 15:16:27 +08:00
主要问题是人闲活儿少,要是天天一堆活,不用现成解决方案这样折腾早累死了
|
15
ytll21 2022-08-10 16:01:10 +08:00
把简单的事情复杂化,有产品经理的潜质,挺好的。
|
16
yiqunz 2022-08-10 16:01:58 +08:00
这不是思维方式的问题,而是他脱离的基础知识去思考问题,或者说基础不行
List API 算是基础知识,怎么用,可能会出现什么问题都应该知道。 简单的场景调用 api 根本不需要考虑源码的实现。。。 而且一般考虑都是性能或者安全的问题,而不是这种最基本的使用场景。。。,这种更像是不熟悉 api 引发的问题? 这就是为什么面试让手写 ArrayList 的原因吗? |
17
Jooooooooo 2022-08-10 16:34:21 +08:00
...
add 是插入一个元素, 这是用错 api 了吧. |
18
byte10 OP @zxCoder 不是凭空想象的场景,而是用错了接口。但是他认为 add 方法实现有问题,达不到他理解的功能。其实 set 方法才是替换元素,add 是新增元素。但是强行扯其他的原因( 由 System.arraycopy 以及 size 引起的数组复制、容器变大的问题 ),我完全不理解他的思维方式。。
@yiqunz 对!我始终不明白为何要扯上具体的实现,接口定义说明就是很清楚了。方向盘就是用过来转弯的,他拿来刹车,然后发现没法刹车,就怪方向盘的实现有问题,已经不是思维方式的问题了。 @11232as 不是折腾的问题,你还没是理解 文章要表达的意思 😂。你要看 整个文章的分析过程,我也是醉了。 @ytll21 不是复杂化,因果 关系没扯明白。。。可以说方向盘不能刹车的原因是:因为它只能让轮子转向。但是反过来说:方向盘只能改变轮子转向,导致了方向盘不能刹车。。。这逻辑。 |
19
admol 2022-08-10 16:37:03 +08:00
文章作者在第一版使用的时候似乎都忘了 List 是可以允许重复的,并且认为 get 出来等同于删除了,如果他想起来了肯定不会写出这样的代码吧。
看他最后一版和第一版的区别也就在 get 和 remove 。 |
20
byte10 OP @admol 他是一开始就认为 list.add 方法就是在位置上替换元素。这文章结果没问题,但是分析的过程有问题。。。扯上了很多毫无关系的原因。你可以看看我的评论,来理解这文章存在的思维错误。
@Jooooooooo 嗯,用错了,没啥大问题。但是一顿 分析其原因 就有大问题。 |
21
Chinsung 2022-08-10 18:37:52 +08:00
槽点太多以至于不知道该怎么说,你让他自己在自己世界就好了,管他干啥
现在越是不懂越想装懂,恨不得把源码都背下来,项目经验也恨不得全部编出来,干这行这种人比比皆是 |
22
Chinsung 2022-08-10 18:40:13 +08:00
@Chinsung #21 再换句话说,这个人才难道不知道 java 也能用数组吗,用数组处理完再转回 list 不就完了?
|
23
Chinsung 2022-08-10 18:43:51 +08:00
@Chinsung #21 看了下别的文章,一个没什么经验比较肤浅的人,既然看到 Reentrantlock 了好歹说下看下 AQS ,然后翻了下最浅层的源码和公平锁非公平锁的构造器就结束了,啊这
|