Java 包裝類:原始資料型別與迭代器

小万哥丶發表於2024-03-12

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);
}

刪除元素

可以使用 Iteratorremove() 方法從集合中刪除元素:

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 包裝類為原始資料型別(如 intboolean 等)提供了物件表示形式。這使得將原始資料型別與需要物件的 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,關注後即可獲取最新文章推送

看完如果覺得有幫助,歡迎 點贊、收藏、關注

相關文章