Java Iterator
Iterator
介面提供了一種迭代集合的方法,即順序訪問集合中的每個元素。它支援 hasNext()
和 next()
方法,用於檢查是否存在下一個元素以及獲取下一個元素。
獲取 Iterator
可以使用集合的 iterator()
方法獲取 Iterator
例項:
// 匯入 ArrayList 類和 Iterator 類
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
// 建立一個 ArrayList
ArrayList<String> cars = new ArrayList<>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
// 獲取 Iterator
Iterator<String> it = cars.iterator();
}
}
遍歷集合
可以使用 hasNext()
和 next()
方法遍歷集合:
while (it.hasNext()) {
String car = it.next();
System.out.println(car);
}
刪除元素
可以使用 Iterator
的 remove()
方法從集合中刪除元素:
while (it.hasNext()) {
String car = it.next();
if (car.equals("Volvo")) {
it.remove();
}
}
注意: 在使用 Iterator
刪除元素時,不要使用集合的 for
迴圈或 for-each
迴圈,因為這會導致集合大小發生變化,並可能導致 Iterator
出現異常。
Iterator
是 Java 中用於遍歷集合的強大工具。它提供了靈活的迭代方式,並支援元素的刪除。
Iterator 的優勢:
- 靈活的迭代方式
- 支援元素的刪除
- 可用於各種集合
Iterator 的劣勢:
- 使用時需要注意集合大小變化
- 可能比
for
迴圈或for-each
迴圈效率低
建議:
- 當需要靈活的迭代方式或需要刪除元素時,使用
Iterator
。 - 當只需要遍歷集合並讀取元素時,可以使用
for
迴圈或for-each
迴圈。
Java 包裝類
Java 包裝類為原始資料型別(如 int
、boolean
等)提供了物件表示形式。這使得將原始資料型別與需要物件的 API 一起使用成為可能。
原始型別與包裝類
下表列出了 Java 中的原始型別及其對應的包裝類:
原始型別 | 包裝類 |
---|---|
byte |
Byte |
short |
Short |
int |
Integer |
long |
Long |
float |
Float |
double |
Double |
boolean |
Boolean |
char |
Character |
使用包裝類
建立包裝物件
可以使用包裝類的建構函式建立包裝物件,並將原始值作為引數傳遞:
Integer myInt = new Integer(5);
Double myDouble = new Double(5.99);
Character myChar = new Character('A');
獲取值
可以使用包裝類的 xxxValue()
方法獲取其對應的原始值:
int intValue = myInt.intValue();
double doubleValue = myDouble.doubleValue();
char charValue = myChar.charValue();
其他方法
包裝類還提供了其他一些方法,例如:
toString()
: 將包裝物件轉換為字串equals()
: 比較兩個包裝物件是否相等hashCode()
: 返回包裝物件的雜湊碼
自動裝箱和拆箱
從 Java 5 開始,自動裝箱和拆箱允許將原始型別隱式轉換為包裝類,反之亦然。
例如:
// 自動裝箱
int x = 10;
Integer y = x; // 隱式將 int 轉換為 Integer
// 拆箱
Integer z = 20;
int w = z; // 隱式將 Integer 轉換為 int
Java 包裝類提供了將原始資料型別用作物件的方法。它們在許多場景下都很有用,例如:
- 將原始資料型別與需要物件的 API 一起使用
- 將原始資料型別儲存在集合中
- 使用包裝類提供的額外方法
建議:
- 在需要將原始資料型別用作物件時使用包裝類。
- 瞭解自動裝箱和拆箱機制,以便更好地使用包裝類。
注意:
- 雖然自動裝箱和拆箱很方便,但它們可能會導致一些效能問題。
- 在某些情況下,例如需要精確控制記憶體使用時,最好避免使用自動裝箱和拆箱。
最後
為了方便其他裝置和平臺的小夥伴觀看往期文章:
微信公眾號搜尋:Let us Coding
,關注後即可獲取最新文章推送
看完如果覺得有幫助,歡迎 點贊、收藏、關注