java是什么 Java集合類庫的頂層里的Collection,List,Set是抽象類的話是否更“正確”一些?
Java集合類庫的頂層里的Collection,List,Set是抽象類的話是否更“正確”一些?不正確。Java是單繼承。如果頂層是抽象類,對以后的代碼擴展非常不利。java接口是多實現的,java官
Java集合類庫的頂層里的Collection,List,Set是抽象類的話是否更“正確”一些?
不正確。Java是單繼承。如果頂層是抽象類,對以后的代碼擴展非常不利。java接口是多實現的,java官方設計為集合和集合,列表也是接口設計,符合java接口實現的特點。如果它們都被設計成抽象類,我們將無法在實際開發中實現我們自己的類。具體結構如下:
collection interface的接口對象集合(單列集合)
ζ-list interface:元素按條目順序保存,可以重復
│--ζLinkedList接口實現類,鏈表,插入刪除,不同步,行不安全
│--ζArrayList接口實現類,數組,隨機訪問,無同步,線程不安全!---向量接口實現類數組,同步,線程安全!-------stack是vector class的實現類
----set接口:只接收一次,不能重復,做內部排序
ζ-----HashSet使用哈希表(數組)存儲元素
iterator和listiterator的區別如下:1。Iterator是listiterator的父接口。
2. 迭代器是單列集合從容器中獲取元素的常用方法。
對于列表,設置是常見的。
Listiterator是從列表集合中提取元素的獨特方法。
3. iterator中唯一的函數是hashnext()、next()、remove()
listiterator具有添加、刪除、修改和查詢遍歷元素的方法,可以反向遍歷元素。
原因是listiterator遍歷的元素的容器有索引。