最近为了实现一个集合,去了解了下安全集合,我一直以为ConcurrentStack和ConcurrentQueue应该内部差不多,因为他们功能差别不大。但是现在发现一个是数组,一个是链表,为啥会选择2类不同的结构来实现呢?是什么场景问题吗?
我知道数组和链表的应用场景不一样,他们有各自的优缺点:
我没有研究过ConcurrentStack和ConcurrentQueue。但据你的描述,应该是为了给调用者多一个选择,调用者可以根据自己的实际情况(是关注随机读取速度,还是关注频繁插入删除)取舍。
且不受不同问题,解决方法不一样;相同问题同样可能解决方法不一样,这有什么好计较的?只是在自己的选项里面是否有更优选择而已,当然如果你不高兴就不给最优解,别人拿到那么用就那么用。