Stack Overflow的第一次使用

使用感言

前言

首先,我是第一次在Stack Overflow上提问题,整个过程确实带给我新的一些感受。我在刷leetcode上一道题目的时候,遇到了一个问题,不太理解下面这一行代码的意思。我的第一个想法就是去搜索,但是不知道是不是我搜索的问题,搜出来的结果很少,而且基本不沾边,所以我就试试Stack Overflow了。出乎意料,很快就有人回答了,而且由于英语太渣,表达能力也不行,很快就有人指出我的问法很模糊,不过好歹有人看了代码抓住了重点。这行代码调用的是某一个api,那么就需要查看对应的文档。很快,就有人觉得我这个问题提的不好,给我扣了分。


说实话,我是自以为没有提问无脑的问题的,而Stack Overflow也不允许提问无意义的问题。虽然我的疑问也差不多解决了,但是反思整个过程有很多坏习惯,没有养成良好的好习惯。

问题

说了半天,我也没有说清楚自己的问题是什么。目前,我不明白的是下面代码里面括号里面的意思。平常,我们用的最多的是使用整型数字来构造我们想要的长度的链表,但这里的类型也是ArrayList。

List<Integer> set = new ArrayList<>(subsets.get(i)); 
List<Integer> set = new ArrayList<>(10); //构造指定长度的空链表,默认是10

官方文档解释如下,复制指定泛型的链表,尤其注意这里的复制是不影响原来的链表的里面的内容的即Collection<? extends E> c。所以这里新构造了一个链表来储存内容,这可以算是链表的整体复制把。

ArrayList​(Collection<? extends E> c) //Constructs a list containing the elements of the specified collection,
                                     //in the order they are returned by the collection's iterator.

总结

  • 遇到问题,首先分析是什么问题是,如果是很庞大的问题,那么我们需要去一步步的拆成一个个小问题。问题可以大致分成这几类:编译问题,配置问题,逻辑问题,理解问题。不涉及代码的都可以通过搜索解决问题,而涉及代码的话首先要缩小范围。
  • 如果是某个api用法不明白的话,查看api doc,doc里面都写了用法。
  • 虽然搜索引擎很强大,但是不是所有的问题都能靠搜索解决,在进行搜索前确定自己的问题是否清晰等等。
  • 自己提的问题一定要能别人能看懂,加强表达能力。
  • 英文对于程序员还是很重要的,要多看看,理解意思即可。

    这个老哥说的已经很委婉了,自己确实忽略了这个步骤,以后需要改掉坏习惯了。不得不说,Stack Overflow作为一个高质量的问答社区,带来的回报不仅仅只有积分和徽章那么简单,还有很多隐性好处。
posted @ 2020-11-18 17:09  mujiaa  阅读(320)  评论(0)    收藏  举报