lamda獲取參數集合去空_JAVA集合框架知識

f1ca27320cae418df9ff68ead2879c90.png

3b144ce177126401edb967772a7e44ea.png

1. Vector用法和ArrayList區別

(1) Vector的特有方法有哪些?

void addElement(E obj) 將指定的組件添加到此向量的末尾,將其大小增加1。

(2) Vector與ArrayList的區別是什么?

①Vector的add()方法是同步方法,ArrayList的add()方法是非同步方法

②Vector擴容每次擴充1倍,ArrayList每次擴充0.5倍

③Vector是在調用構造方法時,直接初始化容量為10,ArrayList是在第一次調用添加方法時,初始化容量為10。

④Vector的版本時JDK1.0開始的,ArrayList是JDK1.2開始的

⑤Vector是線程同步的,安全性高,效率低,

ArrayList是線程非同步的,安全性低,效率高。

2. Map接口_HashMap_Hashtable的用法詳解

(1) Map接口常用的方法有哪些?

①void clear() 從該地圖中刪除所有的映射(可選操作)。

②boolean containsKey(Object key) 如果此映射包含指定鍵的映射,則返回 true 。

③boolean containsValue(Object value) 如果此地圖將一個或多個鍵映射到指定的值,則返回 true 。

④Set<Map.Entry<K,V>> entrySet() 返回此地圖中包含的映射的Set視圖。

⑤V get(Object key) 返回到指定鍵所映射的值,或 null如果此映射包含該鍵的映射。

⑥boolean isEmpty() 如果此地圖不包含鍵值映射,則返回 true 。

⑦Set<K> keySet() 返回此地圖中包含的鍵的Set視圖。

⑧V put(K key, V value) 將指定的值與該映射中的指定鍵相關聯(可選操作)。

⑨void putAll(Map<? extends K,? extends V> m) 將指定地圖的所有映射復制到此映射(可選操作)。

⑩V remove(Object key) 如果存在(從可選的操作),從該地圖中刪除一個鍵的映射。

a.default boolean remove(Object key, Object value) 僅當指定的密鑰當前映射到指定的值時刪除該條目。

b.default V replace(K key, V value) 只有當目標映射到某個值時,才能替換指定鍵的條目。

c.int size() 返回此地圖中鍵值映射的數量。

d

(2) HashMap與Hashtable的異同是什么?

①版本不同HashMap JDK1.2 Hashtable 1.0

②HashMap繼承了AbstractMap,實現了Map接口,Hashtable繼承了Dictionary實現Map接口。

③HashMap允許null值和null鍵,但是null作為key只允許一個,Hashtable非null的鍵和值。

④HashMap是線程不同步的(效率高,安全性低),Hashtable(效率低,安全性高)線程同步。

3. HashMap的底層原理

(1) HashMap的底層數據結構是什么?

散列表

(2) 簡述哈希表的去重原理?

調用equals(…)方法比較元素的內容是否相同,如果相同則不再向鏈表中添加元素。

1. 二叉樹和紅黑樹

(1) 簡述樹的概念和特征?

樹的概念:由一個集合以及在該集合上定義的一種關系構成的。集合中的元素稱為樹的結點,所定義的關系為父子關系。

樹的特征:父子關系在樹的結點之間建立了一個層次結構。樹的結點包含一個數據元素及若干指向其子樹的若干分支。在這種層次結構中有一個結點具有特殊的地位,這個結點稱為該樹的根結點,或簡稱為樹根。

(2) 什么樣的樹被稱為紅黑樹?

①紅黑樹是平衡二叉樹的一種。平衡二叉樹:每個結點的平衡因子都為1,-1,0的二叉排序樹,或者說每個結點的左右子樹的高度最多差1的二叉排序樹。由于紅黑樹也是二叉查找樹,它們當中每一個節點的比較值都必須大于或等于在它的左子樹中的所有節點,并且小于或等于在它的右子樹中的所有節點。這確保紅黑樹運作時能夠快速的在樹中查找給定的值。

②紅黑樹的每個節點上都有存儲位表示結點的顏色,可以是紅或黑。

③每個葉子節點(NIL)是黑色。[注意:這里葉子節點,是指為空(NIL或NULL)的葉子節點!]

④如果一個節點是紅色的,則它的子節點必須是黑色。

⑤從一個節點到該節點的子孫節點的所有路徑上包含相同數目的黑節點。

2. TreeMap的使用和底層實現

(1) TreeMap的常用構造方法有哪些?

①TreeMap() 使用其鍵的自然排序構造一個新的空樹狀圖。

②TreeMap(Comparator<? super K> comparator)

構造一個新的,空的樹圖,按照給定的比較器排序。

③TreeMap(Map<? extends K,? extends V> m)

構造一個新的樹狀圖,其中包含與給定地圖相同的映射,根據其鍵的 自然順序進行排序 。

④TreeMap(SortedMap<K,? extends V> m)

構造一個包含相同映射并使用與指定排序映射相同順序的新樹映射。

(2) TreeMap的底層數據結構是什么?

紅黑樹

3. Set接口_HashSet的用法

(1) Set集合存儲元素的特征?

唯一,無序。

(2) Set接口常用的子類有哪些?

HashSet,LinkedHashSet,TreeSet

4. HashSet底層實現_JDK源碼分析

(1) HashSet的底層數據結構概念?

哈希表,也叫散列表,是根據關鍵碼值(Key value)而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函數叫做散列函數,存放記錄的數組叫做散列表。由數組+單向鏈接組成其數據結構。

(2) HashSet與HashMap的關系?

底層都是用散列表作為數據結構實現的容器類,一個實現了Set接口,一個實現Map接口。兩者不同在于:

*HashMap*

*HashSet*

HashMap實現了Map接口

HashSet實現了Set接口

HashMap儲存鍵值對

HashSet僅僅存儲對象

使用put()方法將元素放入map中

使用add()方法將元素放入set中

HashMap中使用鍵對象來計算hashcode值

HashSet使用成員對象來計算hashcode值,對于兩個對象來說hashcode可能相同,所以equals()方法用來判斷對象的相等性,如果兩個對象不同的話,那么返回false

HashMap比較快,因為是使用唯一的鍵來獲取對象

HashSet較HashMap來說比較慢

5. TreeSet的使用_JDK源碼分析

(1) TreeSet的底層數據結構是什么?在存儲自定義元素時是通過什么方式去掉重復元素的?

紅黑樹。通過內部或者外部比較器實現comparator接口,compare()方法來去重。

(2) TreeSet集合的特點?

有序(升序),唯一。

6. 泛型

(1) 為什么需要泛型?使用泛型的好處有哪些?

在JDK1.4以前類型不明確:裝入集合的類型都被當做Object對待,從而失去自己的實際類型。從集合中取出時往往需要轉型,效率低,容易產生錯誤。

好處:增強程序的可讀性和安全性。

(2) 泛型分幾類,分列舉例說明?

①泛型類 public class Myclass<T>{}

②泛型接口 public interface MyInterface<T>{}

③泛型方法public viod Mymethod(){}

7. 泛型的高級使用_容器中使用泛型

(1) 泛型的高級應用分為哪兩類?

①泛型的上限:使用關鍵字 extends,表示參數化的類型可能是 所指定的類型或者是此類型的子類

②泛型的下限:使用關鍵字 super 進行聲明,表示參數化的類型 可能是所指定的類型,或者是此類型的父類型,直至 Object 類

(2) 泛型的上限指的是什么含義,請舉例說明?

泛型的上限:使用關鍵字 extends,表示參數化的類型可能是 所指定的類型或者是此類型的子類

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282141.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282141.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282141.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里云ECS服務器多種實例規格如何選擇

一、什么是 ECS 云服務器ECS&#xff08;Elastic Compute Service&#xff09;是一種簡單高效、處理能力可彈性伸縮的計算服務。 二、常見的幾種實例規格 &#xff11;、個人類 &#xff08;1&#xff09;突發型&#xff08;t5、t6&#xff09; 特點&#xff1a;性能基線和積…

Blazor學習之旅(2)第一個Blazor應用

【Blazor】| 總結/Edison Zhou大家好&#xff0c;我是Edison。最近在學習Blazor做全棧開發&#xff0c;因此根據老習慣&#xff0c;我會將我的學習過程記錄下來&#xff0c;一來體系化整理&#xff0c;二來作為筆記供將來翻看。本篇我們來構建第一個Blazor Web應用&#xff0c;…

《深入理解Hadoop(原書第2版)》——2.6本章小結

本節書摘來自華章計算機《深入理解Hadoop&#xff08;原書第2版&#xff09;》一書中的第2章&#xff0c;第2.6節&#xff0c;作者 [美]薩米爾瓦德卡&#xff08;Sameer Wadkar&#xff09;&#xff0c;馬杜西德林埃&#xff08;Madhu Siddalingaiah&#xff09;&#xff0c;杰…

HTTP與服務器的四種交互方式

Http定義了與服務器交互的不同方法&#xff0c;最基本的方法有4種&#xff0c;分別是GET&#xff0c;POST&#xff0c;PUT&#xff0c;DELETE。URL全稱是資源描述符&#xff0c;我們可以這樣認為&#xff1a;一個URL地址&#xff0c;它用于描述一個網絡上的資源&#xff0c;而H…

ubuntu 以太網已連接但是無法聯網_工業以太網有多“牛X”?兩個案例告訴你

現代生活中&#xff0c;工業以太網發揮的作用愈來愈重要。為增進大家對工業以太網的認識&#xff0c;本文將基于3方面介紹工業以太網&#xff1a;何為工業以太網物理層&#xff1f;工業以太網具有哪些優勢&#xff1f;工業以太網兩大方案介紹。如果你對工業以太網具有興趣&…

高可用架構可行性方案

一、動靜分離 把靜態的&#xff0c;耗費大量帶寬資源、請求資源的數據獨立出來&#xff0c;緩存到cdn里去&#xff0c;包括產品詳情頁&#xff0c;圖片、視頻、js、css通通打包放到cdn里去&#xff0c;封住一部分流量&#xff0c;用cdn去承擔。 二、熱數據預熱緩存 將一些熱點數…

SublimeText 自帶格式化代碼功能

其實sublime自身就有格式化命令&#xff0c;就不再安裝插件&#xff0c;位置在[Preferences]->[Key Bindings]->[User]中, 中文版的位置在 [首選項]->[按鍵綁定-用戶]&#xff0c;彈出的頁面中 &#xff0c;添加如下代碼&#xff0c;為其設置快捷鍵&#xff1a;Ctr…

http服務詳解(1)——一次完整的http服務請求處理過程

前言&#xff1a;要熟練掌握一個服務&#xff0c;首先需要非常了解這個服務的工作過程&#xff0c;這篇就詳細解釋了http服務的請求處理過程。 一次完整的http請求處理過程 &#xff08;1&#xff09;流程圖 &#xff08;2&#xff09;過程詳解 0、DNS域名解析&#xff1a;遞歸…

線程管理(九)使用本地線程變量

聲明&#xff1a;本文是《 Java 7 Concurrency Cookbook 》的第一章&#xff0c; 作者&#xff1a; Javier Fernndez Gonzlez 譯者&#xff1a;鄭玉婷 校對&#xff1a;方騰飛 使用本地線程變量 并發應用的一個關鍵地方就是共享數據。這個對那些擴展Thread類或者實現Runnable接…

5訓練需要更改參數嗎_糖尿病病人需要多喝水嗎?多喝水的5大好處,了解一下...

糖尿病是典型的慢性疾病&#xff0c;需要在生活中多加講究&#xff0c;從各方面進行預防&#xff0c;其中喝水也是非常重要的一項調控方法。這就與糖尿病影響到患者的代謝功能有一定的關系&#xff0c;如果能夠保持良好的飲水習慣&#xff0c;就可以有效解決糖尿病帶來的影響。…

wordpress搭建博客 主題推薦 2019

一、generatepress2.14 主頁&#xff1a; 詳情頁&#xff1a; 二、 Astra 主頁&#xff1a; 詳情頁&#xff1a; 三、Bstone 主頁&#xff1a; 詳情頁&#xff1a; 四、Hestia 主頁&#xff1a; 詳情頁&#xff1a; 五、Rife free 主頁&#xff1a; 詳情頁&#xff1a;

Blazor學習之旅(1)初步了解Blazor

【Blazor】| 總結/Edison Zhou九月以來在學習Blazor做全棧開發&#xff0c;因此根據老習慣&#xff0c;我會將我的學習過程記錄下來&#xff0c;一來體系化整理&#xff0c;二來作為筆記供將來翻看。作為第一篇&#xff0c;我們先來了解一下這個Blazor到底是個什么鬼。什么是Bl…

英國如何推動分享經濟的發展?

——基于英國“分享經濟全球中心”戰略的深度分析 蔡雄山 騰訊研究院法律研究中心首席研究員 徐 俊 騰訊研究院助理研究員 “分享經濟具有巨大的經濟潛力&#xff0c;我希望確保英國處于分享經濟的前沿與中心&#xff0c;并且成為能夠與舊金山相媲美的高科技初創企業的發源地…

C#合并文件夾圖片列表 自定義排版順序

本次程序編寫主要為了將pdf word等文檔轉換為圖片后設置不同的打印排版 前提 目標文件夾中的圖片高寬都是一致的 /// <summary>/// 合并圖片/// </summary>/// <param name"savedictory">文件保存目錄</param>/// <param name"singl…

硬盤基本知識(一)

總體來說&#xff0c;硬盤結構包括&#xff1a;盤片、磁頭、盤片主軸、控制電機、磁頭控制器、數據轉換器、接口、緩存等幾個部份。所有的盤片&#xff08;一般硬盤里有多個盤片&#xff0c;盤片之間平行&#xff09;都固定在一個主軸上。在每個盤片的存儲面上都有一個磁頭&…

MySQL - 存儲過程

一、概述 存儲過程可以理解為一段 SQL 語句的集合&#xff08;相當于 PHP 中的一個函數方法&#xff0c;去實現業務邏輯&#xff09;&#xff0c;它們被事先編譯好并且存儲在數據庫中。 調用存儲過程與直接執行 SQL 語句的效果是相同的&#xff0c;但是存儲過程的一個好處是處理…

白話聊應用架構

產業互聯網時代&#xff0c;數字化轉型&#xff08;數字化演化歷史&#xff09;已成為一種趨勢&#xff0c;各行各業都投入到數字化轉型的浪潮中來。節后有個客戶項目參與者問我架構方面的事情&#xff0c;我想來想去對于非IT人來說&#xff0c;可能應用架構是最容易理解&#…

python大數_python處理大數字的方法

本文實例講述了python處理大數字的方法。分享給大家供大家參考。具體實現方法如下&#xff1a;def getFactorial(n):"""returns the factorial of n"""if n 0:return 1else:k n * getFactorial(n-1)return kfor k in range(1, 70):print "…

數據庫分庫分表、讀寫分離的原理和實現,以及使用場景

2019獨角獸企業重金招聘Python工程師標準>>> 為什么要分庫分表和讀寫分離&#xff1f; 類似淘寶網這樣的網站&#xff0c;海量數據的存儲和訪問成為了系統設計的瓶頸問題&#xff0c;日益增長的業務數據&#xff0c;無疑對數據庫造成了相當大的負載&#xff0c;同時…

談談一些有趣的CSS題目(十六)-- 奇妙的 background-clip: text

開本系列&#xff0c;談談一些有趣的 CSS 題目&#xff0c;題目類型天馬行空&#xff0c;想到什么說什么&#xff0c;不僅為了拓寬一下解決問題的思路&#xff0c;更涉及一些容易忽視的 CSS 細節。 解題不考慮兼容性&#xff0c;題目天馬行空&#xff0c;想到什么說什么&#x…