牛客java面试题总结版(四)
18.Java集合類框架的基本接口有哪些?
 官方版:
 集合類接口指定了一組叫做元素的對象。集合類接口的每一種具體的實現類都可以選擇以它自己的方式對元素進行保存和排序。有的集合類允許重復的鍵,有些不允許。
 Java集合類提供了一套設計良好的支持對一組對象進行操作的接口和類。Java集合類里面最基本的接口有:
 Collection:代表一組對象,每一個對象都是它的子元素。
 Set:不包含重復元素的Collection。
 List:有順序的collection,并且可以包含重復元素。
 Map:可以把鍵(key)映射到值(value)的對象,鍵不能重復。
大神版:
 總共有兩大接口:Collection 和Map ,一個元素集合,一個是鍵值對集合; 其中List和Set接口繼承了Collection接口,一個是有序元素集合,一個是無序元素集合; 而ArrayList和 LinkedList 實現了List接口,HashSet實現了Set接口,這幾個都比較常用; HashMap 和HashTable實現了Map接口,并且HashTable是線程安全的,但是HashMap性能更好;
java.util.Collection [I]
|—java.util.List [I]|—java.util.ArrayList [C]|—java.util.LinkedList [C]|—java.util.Vector [C]|—java.util.Stack [C]|—java.util.Set [I]|—java.util.HashSet [C]|—java.util.SortedSet [I]|—java.util.TreeSet [C]java.util.Map [I]
|—java.util.SortedMap [I]|—java.util.TreeMap [C]|—java.util.Hashtable [C]|—java.util.HashMap [C]|—java.util.LinkedHashMap [C]|—java.util.WeakHashMap [C]19.為什么集合類沒有實現Cloneable和Serializable接口?
 官方版
 克隆(cloning)或者是序列化(serialization)的語義和含義是跟具體的實現相關的。因此,應該由集合類的具體實現來決定如何被克隆或者是序列化。
實現序列化的作用:
 實現Serializable序列化的作用
 1.將對象的狀態保存在存儲媒體中以便可以在以后重寫創建出完全相同的副本;
 2.按值將對象從一個從一個應用程序域發向另一個應用程序域。
 實現 Serializable接口的作用就是可以把對象存到字節流,然后可以恢復。所以你想如果你的對象沒有序列化,怎么才能進行網絡傳輸呢?要網絡傳輸就得轉為字節流,所以在分布式應用中,你就得實現序列化。如果你不需要分布式應用,那就沒必要實現實現序列化。
20.什么是迭代器(Iterator)?
 官方版
 Iterator接口提供了很多對集合元素進行迭代的方法。每一個集合類都包含了可以返回迭代器實例的
 迭代方法。迭代器可以在迭代的過程中刪除底層集合的元素,但是不可以直接調用集合的
 remove(Object Obj)刪除,可以通過迭代器的remove()方法刪除。
大神版:
 迭代器是一種設計模式,它是一個對象,它可以遍歷并選擇序列中的對象,而開發人員不需要了解該序列的底層結構。迭代器通常被稱為“輕量級”對象,因為創建它的代價小。
Java中的Iterator功能比較簡單,并且只能單向移動:
(1) 使用方法iterator()要求容器返回一個Iterator。第一次調用Iterator的next()方法時,它返回序列的第一個元素。注意:iterator()方法是java.lang.Iterable接口,被Collection繼承。
(2) 使用next()獲得序列中的下一個元素。
(3) 使用hasNext()檢查序列中是否還有元素。
(4) 使用remove()將迭代器新返回的元素刪除。
Iterator是Java迭代器最簡單的實現,為List設計的ListIterator具有更多的功能,它可以從兩個方向遍歷List,也可以從List中插入和刪除元素。
總結
以上是生活随笔為你收集整理的牛客java面试题总结版(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: java集合类根接口:Collectio
- 下一篇: java基础,没事常看看(一)类、对象、
