牛客題目總結

2021-10-03 09:13:47 字數 857 閱讀 8042

一、vector & arraylist 的主要區別

1) 同步性:vector是執行緒安全的,也就是說是同步的 ,而arraylist 是線程式不安全的,不是同步的 。

2)資料增長:當需要增長時,vector預設增長為原來一倍 ,而arraylist卻是原來的50%  ,這樣,arraylist就有利於節約記憶體空間。

如果涉及到堆疊,佇列等操作,應該考慮用vector,如果需要快速隨機訪問元素,應該使用arraylist 。

擴充套件知識

1. hashtable & hashmap

hashtable和hashmap它們的效能方面的比較類似 vector和arraylist,比如hashtable的方法是同步的,而hashmap的不是。

2. arraylist & linkedlist

arraylist的內部實現是基於內部陣列object,所以從概念上講,它更象陣列,但linkedlist的內部實現是基於一組連線的記錄,所以,它更象乙個鍊錶結構,所以,它們在效能上有很大的差別:   

從上面的分析可知,在arraylist的前面或中間插入資料時,你必須將其後的所有資料相應的後移,這樣必然要花費較多時間,所以,當你的操作是在一列資料的後面新增資料而不是在前面或中間,並且需要隨機地訪問其中的元素時,使用arraylist會提供比較好的效能; 而訪問鍊錶中的某個元素時,就必須從鍊錶的一端開始沿著連線方向乙個乙個元素地去查詢,直到找到所需的元素為止,所以,當你的操作是在一列資料的前面或中間新增或刪除資料,並且按照順序訪問其中的元素時,就應該使用linkedlist了。

python選題 牛客Python題目

1.python單下劃線 foo 雙下劃線 foo foo 的區別。單下劃線 開始的成員變數叫做保護變數,意思是只有類物件和子類物件自己能訪問到這些變數 雙下劃線 開始的是私有成員,意思是只有類物件自己能訪問,連子類物件也不能訪問到這個資料。以單下劃線開頭 foo 的代表不能直接訪問的類屬性,需通過...

牛客網 sql 題目練習筆記

題目 查詢各個部門當前 dept manager.to date 9999 01 01 領導當前 salaries.to date 9999 01 01 薪水詳情以及其對應部門編號dept no 注 請以salaries表為主表進行查詢,輸出結果以salaries.emp no公升序排序,並且請注意...

牛客網 題目A 廣義肥波

廣義肥波那契數列,以遞迴的方法定義如下 例如,當a b text 1a b 1時,數列為 text 1,1,2,3,5,8,13,1,1,2,3,5,8,13,現在,請求出。輸入共一行,包含4個正整數a,b,m,n 1 a,b,m 10 9,1 n 10 5 輸出共一行,包含乙個非負整數表示答案。由...