「008期」JavaSE面試題(八):集合之List

2021-01-07 酷扯兒

本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫

開篇介紹

大家好,我是Java面試題庫的提褲姐,今天這篇是面試系列的第八篇,主要總結了JavaSE中集合相關面試題,集合面試分為四篇來講,畢竟是重中之重!這是第一篇,主要是一些基礎的Collection及List相關的面試題,第二篇主要講解Set集合,第三篇和第四篇主要講解Map集合。在後續,會沿著第一篇開篇的知識線路一直總結下去,做到日更!如果我能做到百日百更,希望你也可以跟著百日百刷,一百天養成一個好習慣。

Q:

說一下集合的體系?

單列集合:

雙列集合:

Q:

Collection 和 Collections的區別?

Collection:

是java.uitl 下的接口,他是各種集合的父接口,繼承於它的接口主要有set 和list;

Conllecitons:

是個java.util下的類,是針對集合的工具類,提供一系列靜態方法對各種集合的搜索,排序,線程安全化等操作。

Q:

List a=new ArrayList() 和 ArrayList a =new ArrayList()的區別?

List list = new ArrayList();

這句創建了一個 ArrayList 的對象後把上溯到了 List。此時它是一個List對象了,有些ArrayList 有但是 List 沒有的屬性和方法,它就不能再用了。

ArrayList list=new ArrayList();

創建一對象則保留了ArrayList 的所有屬性。所以需要用到 ArrayList 獨有的方法的時候不能用前者。實例代碼如下:

1List list = new ArrayList();2ArrayList arrayList = new ArrayList();3list.trimToSize(); //錯誤,沒有該方法。4arrayList.trimToSize(); //ArrayList裡有該方法。

Q:

Enumeration和iterator接口的區別?

Enumeration接口作用與iterator接口相似,但只提供了遍歷vector和HashTable類型集合元素的功能,不支持元素的移除操作Enumeration速度是iterator的2倍,同時佔用更少的內存。但是,iterator遠比enumeration安全,因為其他線程不能夠修改正在被iterator遍歷的集合裡面的對象。同時,iterator允許調用者刪除底層集合裡面的元素。

Q:

ListIterator有什麼特點,與iterator區別?

Iterator是ListIterator的父類接口Iterator是單列集合(Collection)公共取出容器中元素的方式ListIterator是List集合的特有取出元素方式Iterator中具備的功能只有hashNext(),next(),remove();ListIterator中具備著對被遍歷的元素進行增刪查改的方法,可以對元素進行逆向遍歷。

Q:

ArrayList集合加入1萬條數據,應該怎麼提高效率?

直接初始化ArrayList集合的初始化容量為1萬。

但達到100萬以上乃至1000萬以上時,初始化容量方法效率會下降

Q:

說一下ArrayList和Vector的擴容?

ArrayList和Vector都有一個初始的容量大小。ArrayList 是一個可改變大小的數組,當更多的元素加入到ArrayList中時,其大小將會動態地增長。內部的元素可以直接通過get與set方法進行訪問,因為ArrayList本質上就是一個數組.Vector和ArrayList在更多元素添加進來時會請求更大的空間。Vector每次請求其大小的雙倍空間,而ArrayList每次對size增長50%.(Vector默認增加原來的一倍,ArrayList默認增加原來的0.5倍)

注意:默認情況下ArrayList的初始容量非常小,所以如果可以預估數據量的話,最好分配一個較大的初始值,這樣可以減少調整大小的開銷。

相關焦點

  • 「009期」JavaSE面試題(九):集合之Set
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫開篇介紹大家好,我是Java面試題庫的提褲姐,今天這篇是面試系列的第九篇,主要總結了
  • 【009期】JavaSE面試題(九):集合之Set
    的提褲姐,今天這篇是面試系列的第九篇,主要總結了JavaSE中集合相關面試題,這篇是集系列的第二篇,主要講解Set集合,第三篇主要講解Map集合。封裝了一個 HashMap 對象來存儲所有的集合元素,所有放入 HashSet 中的集合元素實際上由 HashMap 的 key 來保存,而 HashMap 的 value 則存儲了一個 PRESENT,它是一個靜態的 Object 對象。
  • Java集合List和Map面試題以及答案
    list保存的數據是可以重複的,list的子類有LinkedList、Vrctor和ArrayList集合。Set接口也是和List一樣繼承Collection接口。Set在數學上的意義就是集合的概念,他和List不一樣的是,不允許集合中的元素重複。
  • 「007期」JavaSE面試題(七):異常
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫開篇介紹大家好,我是Java面試題庫的提褲姐,今天這篇是面試系列的第七篇,主要總結了JavaSE中異常類相關面試題,在後續,會沿著第一篇開篇的知識線路一直總結下去,做到日更!
  • 「003期」JavaSE面試題(三):JavaSE語法(1)
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫開篇介紹大家好,我是Java面試題庫的提褲姐,今天這篇是JavaSE系列的第三篇,
  • 【每日一題】(33題)面試官:你對圖論了解多少?(三)
    「松寶寫代碼」公眾號作者,每日一題,實驗室等。一個愛好折騰,致力於全棧,正在努力成長的字節跳動工程師,星辰大海,未來可期。內推字節跳動各個部門各個崗位。•回復「社招」獲取內推•回復「實習生」獲取內推後續會有更多福利學習資料福利回復「算法」獲取算法學習資料往期「每日一題」1、JavaScript && ES6•第 28 題:【每日一題】(28題)面試官:原型鏈與構造函數結合方法繼承與原型式繼承的區別?
  • 50道Java集合經典面試題(收藏版)
    前言來了來了,50道Java集合面試題也來啦~ 已經上傳github:https://github.com/whx123/JavaHome1.Collection表示一個集合,包含了一組對象元素。如何維護它的元素對象是由具體實現來決定的。因為集合的具體形式多種多樣,例如list允許重複,set則不允許。而克隆(clone)和序列化(serializable)只對於具體的實體,對象有意義,你不能說去把一個接口,抽象類克隆,序列化甚至反序列化。
  • 幾道和「廣度優先搜索」有關的算法面試題
    1 二叉樹的層次遍歷二叉樹的層次遍歷是最直接了當的使用廣度優先遍歷就能解決的一題。            list.add(node.val);            if(node.left != 0) {                return 2;            } else{                return 1;            }        }        a++;     }        return 3;}但因為本章是「廣度優先遍歷」的專欄,因此再補充一個圖的廣度優先遍歷的答案
  • 9道Java集合面試題,搞定了再去投簡歷吧!
    今天這篇文章是單純的從面試的角度出發,以回答面試題為線索,再把整個 Java 集合框架複習一遍,希望能幫助大家拿下面試。精心準備面試既是對面試官個人時間的尊重,也是表明了你對這家公司的興趣,這樣的員工不是每家公司都想要的嗎?好了,進入正題,今天就來解決這 9 大面試題。1.
  • 「005期」JavaSE面試題(五):String類
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫開篇介紹大家好,我是Java面試題庫的提褲姐,本篇文章是面試系列文章的第五篇,主要介紹了
  • 網際網路大廠算法面試題集合,看完我跪了!
    來源:https://github.com/azl397985856/leetcode介紹leetcode 題解
  • 「011期」JavaSE面試題(十一):多線程(1)
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫開篇介紹大家好,我是Java面試題庫的提褲姐,今天這篇是JavaSE系列的第十一篇
  • python教程第七課:Python基礎之list集合
    Python基礎之list集合今天我們主要來看看如何使用python裡面的list集合1、list概念:list是python裡面的一種數據類型,是一種有序的集合列表,具有可變性。定義:使用[] 的方式定義list集合,names = ['a','b','c'] #定義一個 names的listnames = [] #定義一個空的list集合常用方法:a) 查看list集合的長度使用len()len(names) #返回names集合長度3
  • Java 集合框架看這一篇就夠了
    操作集合,無非就是「增刪改查」四大類,也叫 CRUD:Create, Read, Update, and Delete.add(int index, E e)是在特定的位置上加元素,LinkedList 需要先找到這個位置,再加上這個元素,雖然單純的「加」這個動作是 O(1) 的,但是要找到這個位置還是 O(n) 的。(這個有的人就認為是 O(1),和面試官解釋清楚就行了,拒絕扛精。
  • 【007期】JavaSE面試題(七):異常
    大家好,我是Java面試題庫
  • 網際網路公司最常見的面試算法題大集合!
    來源:Github編輯:元子【導讀】LeetCode是一個美國的在線編程網站,收集了各個大廠的筆試面試題,對找工作的畢業生和開發者來說,非常有價值。很多求職者都會在LeetCode刷上一遍,面試官也喜歡在上面挑選各類題目。LeetCode是一個美國的在線編程網站,收集了各個大廠的筆試面試題,對找工作的畢業生和開發者來說,非常有價值。不過LeetCode上面的題目很多都是考察應聘者對基礎知識的應用,適合進行練習編程基礎或者準備面試。很多求職者都會在LeetCode刷上一遍,面試官也喜歡在上面挑選各類題目。
  • 玩轉Python集合,這一篇就夠了!
    需要注意的一點是,你只能將不可變的值(例如一個字符串或一個元組)加入到集合中。舉例而言,如果你試圖將一個列表(list)添加到集合中,系統會返回類型錯誤「TyprError」。∪ dataEngineer」的併集,是屬於「dataScientist」或「dataEngineer」或同時屬於二者元素的集合。
  • [每日一題]面試官問:for in和for of 的區別和原理?
    | songEagle一、前言2020.12.23 日剛立的 flag,每日一題,題目類型不限制,可以是:算法題,面試題,闡述題等等。本文是「每日一題」第 7 題:[每日一題]面試官問:for in和for of 的區別和原理?往期「每日一題」:二、for in和for of 的區別和原理?這個題目本身不是特別難,只能說是作為社招的基礎面試題,但是如果想回答好這道題也不是很容易。
  • 「002期」JavaSE面試題(二):基本數據類型與訪問修飾符
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫開篇導讀大家好,我是Java面試題庫的提褲姐,今天這篇是JavaSE系列的第二篇,
  • 500道Java 必備面試題答案(過後即刪)
    因為我也有過那段「自學」Java 的迷茫時期,所以我深知好的系統學習規劃和生動的老師講解,是事半功倍並且省下我們更多青春的關鍵。從業十多年,我從面試者變成面試官,在 Java 面試上積累了比較豐富的經驗。