日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

JavaSE(十)——set和map集合、异常、File类

發布時間:2025/3/13 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaSE(十)——set和map集合、异常、File类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1.set集合
  • 2. Map集合
    • 2.1 Map概述
    • 2.2 Map集合的基本功能
    • 2.3 Map集合遍歷
  • 3.異常
    • 3.1 異常的繼承體系
    • 3.2 異常處理的兩種方式
    • 3.3 異常注意事項
    • 3.4 最常見的 幾個異常
  • 4. File類

1.set集合

  • HashSet:底層數據結構是哈希表(數組+鏈表 JDK1.8 之后數組+鏈表+二叉樹),元素唯一 、無序 ,元素的唯一性,是靠元素重寫hashCode()和equals()方法來保證的。如果元素不重寫,就無法保證。
  • LinkedHashSet 元素有序且唯一 數據結構是鏈表和哈希表,鏈表保證了有效,哈希表保證唯一。
  • TreeSet 底層數據結構是二叉樹,元素唯一,且能對元素進行排序。

TreeSet兩種排序
TreeSet集合中保證元素唯一性與排序有兩種方式:
方式1:實現自然排序接口 Comparable,重寫 compareTo(T t)方法
方式2:實現比較器排序接口 Comparator,重寫 compare(T t1, T t2)方法

  • 實例之自然排序

    ? 是java里唯一的三元運算符,符號的意思是:
    如果?前面的式子為真,那么就返回冒號:左邊的值;否則返回右邊的值。

  • 運行結果

  • 實例之比較器排序

  • 運行結果

2. Map集合

2.1 Map概述

  • 是一個接口,其將鍵映射到值的對象。一個映射不能包含重復的鍵;每個鍵最多只能映射到一個值。Map接口下的三個實現類 HashMap、LinkedHashMap、TreeMap

HashMap 工作原理:HashMap 類有一個叫做 Entry 的內部類。這個 Entry 類包含了 key-value 作為實例變量。每 當往 hashmap 里面存放 key-value 對的時候,都會為它們實例化一個 Entry 對象,這個 Entry 對象就會存儲在前面提到的 Entry 數組 table 中。Entry 具體存在 table 的那個位置是 根據 key 的 hashcode()方法計算出來的 hash 值(來決定)。

2.2 Map集合的基本功能

Map集合的功能概述
(1)添加功能
V put(K key,V value):添加元素。這個其實還有另一個功能?替換
如果鍵是第一次存儲,就直接存儲元素,返回null
如果鍵不是第一次存在,就用值把以前的值替換掉,返回以前的值
(2)刪除功能
void clear():移除所有的鍵值對元素
V remove(Object key):根據鍵刪除鍵值對元素,并把值返回
(3)判斷功能
boolean containsKey(Object key):判斷集合是否包含指定的鍵
boolean containsValue(Object value):判斷集合是否包含指定的值
boolean isEmpty():判斷集合是否為空
(4)獲取功能
Set<Map.Entry<K,V>> entrySet(): 返回一個鍵值對的Set集合
V get(Object key):根據鍵獲取值
Set keySet():獲取集合中所有鍵的集合
Collection values():獲取集合中所有值的集合
(5)長度功能
int size():返回集合中的鍵值對的對數

  • 實例

2.3 Map集合遍歷

方式一:根據鍵找值
方式二:把鍵值對 對象 Node 統一取出來,根據鍵值對對象找鍵和值

  • 實例

3.異常

  • 異常的概述: 異常就是Java程序在運行過程中出現的錯誤。

3.1 異常的繼承體系

異常的基類: Throwable
嚴重問題: Error 不予處理,因為這種問題一般是很嚴重的問題,比如: 內存溢出
非嚴重問題: Exception
編譯時異常: 非RuntimeException及其子類,必須解決
運行時異常: RuntimeException及其子類,可解決也可不解決

3.2 異常處理的兩種方式

(1)try…catch處理異常的基本格式
try {
可能出現問題的代碼 ;
}catch(異常名 變量名){
針對問題的處理 ;
}finally{
釋放資源;
}
快捷鍵:ctrl+alt+T
(2)throws:拋給調用者去處理,簡稱甩鍋,一般甩到main()函數就不再甩,在主函數中捕獲異常再處理。
快捷鍵:alt+ENTER

3.3 異常注意事項

(1)子類重寫父類方法時,子類的方法必須拋出相同的異常或父類異常的子類,或者子類不拋出異常也是可以的。(父親壞了,兒子不能比父親更壞)
(2)如果父類拋出了多個異常,子類重寫父類時,只能拋出相同的異常或者是他的子集,子類不能拋出父類沒有的異常,或者子類不拋出異常也是可以的。
(3)如果被重寫的方法沒有異常拋出,那么子類的方法絕對不可以拋出異常,如果子類方法內有異常發生,那么子類只能try,不能throws.

3.4 最常見的 幾個異常

NullPointerException - 空指針引用異常
ClassCastException - 類型強制轉換異常
IllegalArgumentException - 傳遞非法參數異常
ArithmeticException - 算術運算異常
IndexOutOfBoundsException - 下標越界異常
NumberFormatException - 數字格式異常

4. File類

  • 文件和目錄路徑名的抽象表示形式, 這個File類可以用來表示文件,也可以用來表示目錄
  • 創建功能
    public boolean createNewFile():創建一個新的文件 如果存在這樣的文件,就不創建了
    public boolean mkdir():創建文件夾 如果存在這樣的文件夾,就不創建了 注意這個方法只能創建單層目錄 如果創建多層目錄得一層一層創建
    public boolean mkdirs():創建文件夾,如果父文件夾不存在,會幫你創建出來 可以創建多層目錄 當然也可以創建單層目錄
  • 刪除功能
    public boolean delete():刪除文件或者文件夾
  • 重命名功能
    public boolean renameTo(File dest):把文件重命名為指定的文件路徑
  • 判斷功能
    public boolean isDirectory(): 判斷是否是目錄
    public boolean isFile(): 判斷是否是文件
    public boolean exists(): 判斷是否存在
    public boolean canRead(): 判斷是否可讀
    public boolean canWrite(): 判斷是否可寫
    public boolean isHidden(): 判斷是否隱藏
  • 獲取功能
    public String getAbsolutePath(): 獲取絕對路徑
    public String getPath(): 獲取相對路徑
    public String getParent() 返回此抽象路徑名父目錄的路徑名字符串;如果此路徑名沒有指定父目錄,則返回 null。
    public File getParentFile() 返回此抽象路徑名父目錄的抽象路徑名;如果此路徑名沒有指定父目錄,則返回 null。
    public long getTotalSpace() 返回此抽象路徑名指定的分區大小。 返回總容量 單位字節
    public long getFreeSpace() 返回此抽象路徑名指定的分區中未分配的字節數。返回剩余容量 單位字節
    public String getName(): 獲取名稱
    public long length(): 獲取長度。字節數
    public long lastModified(): 獲取最后一次的修改時間,毫秒值
    public String[] list(): 獲取指定目錄下的所有文件或者文件夾的名稱數組,獲取相對路徑
    public File[] listFiles(): 獲取指定目錄下的所有文件或者文件夾的File數組,獲取絕對路徑
與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的JavaSE(十)——set和map集合、异常、File类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。