寫在前面
今天繼續講集合後面的部分,還會加一點JavaIO流的知識!
關於 Java 增強 for
迴圈和 Collections
類概述:
增強 for
迴圈
概述
增強 for
迴圈用於簡化陣列和 Collection
集合的遍歷。它使程式碼更簡潔,易於閱讀。
格式
for (元素資料型別 變數 : 陣列或者 Collection 集合) {
// 使用變數,該變數就是元素
}
好處
- 簡化遍歷程式碼
- 避免使用迭代器時可能出現的複雜性
注意事項
- 增強
for
迴圈的目標物件(陣列或集合)需要進行null
判斷,以避免NullPointerException
。
示例
假設有一個 List<String>
集合 list
,遍歷這個集合的傳統 for
迴圈如下:
for (int i = 0; i < list.size(); i++) {
String item = list.get(i);
System.out.println(item);
}
使用增強 for
迴圈可以簡化為:
for (String item : list) {
System.out.println(item);
}
Collections
類
概述
Collections
是 Java 提供的一個工具類,用於對集合進行操作。它包含了許多靜態成員方法,可以對集合進行各種操作。
靜態成員方法
-
public static <T> void sort(List<T> list)
對List
進行排序。 -
public static <T> int binarySearch(List<?> list, T key)
在排序的List
中進行二分查詢。 -
public static <T> T max(Collection<?> coll)
返回集合中最大元素。 -
public static void reverse(List<?> list)
反轉List
中元素的順序。 -
public static void shuffle(List<?> list)
隨機打亂List
中元素的順序。
同步集合
將不安全的集合轉換為執行緒安全的集合。
-
public static <T> Collection<T> synchronizedCollection(Collection<T> c)
返回由指定集合支援的同步(執行緒安全)集合。 -
public static <T> List<T> synchronizedList(List<T> list)
返回由指定列表支援的同步(執行緒安全)列表。 -
public static <K, V> Map<K, V> synchronizedMap(Map<K, V> m)
返回由指定地圖支援的同步(執行緒安全)對映。 -
public static <T> Set<T> synchronizedSet(Set<T> s)
返回由指定集合支援的同步(執行緒安全)集。
關於Java 輸入輸出流和異常處理的概述:
輸入輸出流
概述
Java 提供了一系列類和介面來處理輸入和輸出操作。這些類主要分為位元組流和字元流兩大類。
位元組流
InputStream
: 所有位元組輸入流的基類。OutputStream
: 所有位元組輸出流的基類。- 常用類:
FileInputStream
: 從檔案中讀取位元組資料。FileOutputStream
: 向檔案中寫入位元組資料.BufferedInputStream
: 帶有緩衝區的輸入流,提高效率。BufferedOutputStream
: 帶有緩衝區的輸出流,提高效率。
字元流
Reader
: 所有字元輸入流的基類。Writer
: 所有字元輸出流的基類.- 常用類:
FileReader
: 從檔案中讀取字元資料。FileWriter
: 向檔案中寫入字元資料。BufferedReader
: 帶有緩衝區的字元輸入流,通常用於讀取文字行。BufferedWriter
: 帶有緩衝區的字元輸出流,通常用於寫入文字行。
異常處理
概述
異常是指 Java 程式在編譯或執行過程中遇到的不正常情況。異常處理機制用於處理這些情況,以避免程式崩潰。
Throwable
Error
: 表示嚴重的錯誤,通常不需要應用程式去捕獲或處理。Exception
: 表示程式執行過程中發生的異常情況,程式可以捕獲和處理。
異常的分類
- 編譯時期異常: 需要在編譯時處理(例如:
IOException
,SQLException
)。這些異常必須用try...catch
語句塊處理,或者在方法簽名中使用throws
宣告。 - 執行時期異常 (
RuntimeException
): 不需要在編譯時處理(例如:NullPointerException
,ArrayIndexOutOfBoundsException
)。這些異常可以在執行時被捕獲,但不強制要求處理。
異常的處理
try...catch...finally
:try { // 可能引發異常的程式碼 } catch (ExceptionType e) { // 處理異常的程式碼 } finally { // 無論是否發生異常,都會執行的程式碼 }
throws
:
在方法定義上宣告異常,表明該方法可能丟擲異常,呼叫者需要處理或繼續丟擲。public void myMethod() throws IOException { // 方法體 }
throw
:
在方法內部丟擲異常。if (condition) { throw new CustomException("Custom exception message"); }
自定義異常
自定義異常類可以擴充套件 Exception
或 RuntimeException
。
public class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
好了今天的分享就結束了,之後我將繼續分享IO流後面的內容!