首頁  >  文章  >  Java  >  java經典面試題集錦(六)

java經典面試題集錦(六)

王林
王林轉載
2020-07-13 17:17:382397瀏覽

java經典面試題集錦(六)

一、什麼是陣列?什麼是鍊錶?

(相關面試題推薦:java面試題

數組就像身上編了號站成一排的人,要找第10個人很容易,根據人身上的編號很快就能找到。但插入、刪除慢,要望某個位置插入或刪除一個人時,後面的人身上的編號都要變。當然,加入或刪除的人始終末尾的也快。

鍊錶是一種上一個元素的引用指向下一個元素的儲存結構,鍊錶透過指標來連接元素與元素;

鍊錶就像手牽手站成一圈的人,要找第10個人不容易,必須從第一個人一個個數過去。但插入、刪除快。插入時只要解開兩個人的手,並重新牽上新加進來的人的手就可以。刪除一樣的道理。

Java中,ArrayList、LinkedList就是分別用陣列和鍊錶做內部實作的。

二、陣列和鍊錶有什麼區別

不同:鍊錶是鍊式的儲存結構;陣列是順序的儲存結構。

鍊錶透過指標來連接元素與元素,數組則是把所有元素依序儲存。

(相關教學建議:java入門教學

鍊錶的插入刪除元素相對陣列較為簡單,不需要移動元素,且較為容易實現長度擴充,但是尋找某個元素較為困難;

數組尋找某個元素較為簡單,但插入與刪除比較複雜,由於最大長度需要再編程一開始時指定,故當達到最大長度時,擴充長度不如鍊錶方便。

相同:兩種結構皆可實現資料的順序存儲,建構出來的模型呈線性結構。

三、java集合與陣列的特性

陣列特點:大小固定,只能儲存相同資料類型的資料

集合特徵:大小可動態擴展,可儲存各種類型的資料

(相關影片教學推薦:java影片教學

四、LinkedList底層實作方式

LinkedList是透過雙向鍊錶去實現的,既然是鍊錶實現那麼它的隨機存取效率比ArrayList要低,順序存取的效率要比較的高。每個節點都有一個前驅(之前前面節點的指標)和一個後繼(指向後面節點的指標),效果如下圖:

java經典面試題集錦(六)

##1、使用for適合循環ArrayLIst以及數組,當大批量的循環LinkedList時程式將會卡死,for適合循環數組結構,透過下標去遍歷。

2、使用foreach適合循環LinkedList,使用雙鍊錶結構實作的應當使用foreach迴圈。

以上是java經典面試題集錦(六)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除