PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
java
[问题] 关于 Collection 的相关问题
楼主:
sam92260
(中坜炸豆腐)
2020-08-23 03:16:25
嗨大家好,小弟我还是学生想请问大家一些关于 collection 的问题,因为想了很久还是
想不通,所以想请大家帮帮忙。
先假设我今天想要实作一个stack
List<Integer> stack1 = new LinkedList<Integer>();
List<Integer> stack2 = new ArrayList<Integer>();
第一种方法为用LinkedList 类别实作 List 接口
第二种方法为用ArrayList 类别实作List接口
可是 stack1 和 stack2 同样都只能使用 List 接口的方法,所以我不太懂说用哪个类别
实作会有什么差。
如果我今天就只是要实作 LIFO的特性而上述,那上述实作方法都可达成我的目的。
我知道假设对stack1 做 get(int index) 最差为 O(n)
然后对 stack2 做 get(int index) 只要O(1)
(Question 1)可是假如我今天只是想要有LIFO 的这种特性,那我是不是不需要考虑这么
多,这两种用哪一种看心情随便使用即可?
————————————————————————————
(Question 2)又或著说我今天也直接宣告成底下这样也没差?
LinkedList<Integer> stack3 = new LinkedList<Integer>();
ArrayList<Integer> stack4 = new ArrayList<Integer>();
因为上述这两种宣告方式,我反而能有更多 methods 可以使用,不会侷限于只能用 List
接口的 methods。
————————————————————————————
但!但是!我今天也有查到,发现大家在实作 queue 和 stack都比较常用底下这方法:
Queue queue1 = new ArrayDequeue();
Queue stack5 = new ArrayDequeue();
(Question 3)但是我看到这实作方法后,我一样浮出跟上面的疑问,如果我只是想要有FI
FO orLIFO 的特性的话我何不直接这样宣告:
ArrayDequeue queue2 = new ArrayDequeue();
ArrayDequeue stack6 = new ArrayDequeue();
这样宣告,我甚至还有更多 methods 可以是使用!
————————————————————————————
(Question 4) 假设我今天要养成良好的Coding习惯的话,我该用哪种宣告方式呢?
能请大家说一下业界的习惯是什么吗?
————————————————————————————
(Question 5) 我在查这些资料的时候还有看到一下关键字:
Thread-Safe
Non Thread-Safe
上述这两个东西好像也会影响我们选择用哪种方式去做宣告,但是小弟我看了资料也不是
很了解,还请各位帮忙一下!
最后感谢大家的回答,和花时间看这篇!
作者:
ssccg
(23)
2020-08-23 03:45:00
1. LIFO你都还没谈到add、remove的成本,是考虑太少不是不需要这么多,根本不够多吧2.以程式效能来说是没差,但是“反而有更多方法能用”可不见得是好处,通常会选符合设计逻辑、刚好够用的接口,避免用到限制实作的方法,真的需要换实作时就麻烦了5.
https://en.wikipedia.org/wiki/Thread_safety
thread safe简单说就是多个thread用同个物件保证不会出错
作者:
tw11509
(John-117)
2020-08-26 08:58:00
你的问题可以去了解一下多型与ADT
作者:
jej
(晃奶大馬桶)
2020-08-27 13:55:00
先了解什么是物件 就能解你的一堆问题再去了解算法 你就知道FIFO是说哪一个了 加油!
继续阅读
[问题] 在树莓派3使用POI 无法执行
llzzyy01
[问题] 使用fortify扫瞄出system information le
lueichun
[问题] Kotlin的热潮几乎已经全部过去了?
dharma
[问题] 根据Service结果决定接下来的行为
Dong0129
[问题] 关于private的继承问题
awpadam
[问题] 使用JPA配置oracle JDBC driver,跳出Cou
lueichun
[出售]巨匠Java考试券
eraserx
[问题] Sleep结束后没有继续执行
Dong0129
[征书] OCAJP/OCPJP 曾瑞君and猛虎系列
JuiceBro
[问题] 明明有进入程式里的方法,页面却跳出404
lueichun
Links
booklink
Contact Us: admin [ a t ] ucptt.com