將 Java 數組轉換為可迭代數組
一、簡介
數組是基本數據結構,它提供了一種在連續的內存塊中存儲相同類型的多個元素的方法。然而,它們有一定的局限性,例如固定的大小以及缺乏方便的操作和遍歷方法。
在本教程中,我們將深入研究將 Java 數組轉換為Iterable數據結構的過程,並解鎖各種可以極大簡化和增強數據操作的內置功能。
將 Java 數組轉換為Iterable結構對於獲得高級功能、提高代碼可讀性、可維護性和可重用性至關重要。
2.使用Stream collect()
Stream API 提供了在 Java 中將int[]數組轉換為Iterable最便捷方法。 IntStream接口提供了一組專門為處理原始整數流而設計的方法。讓我們用它來實現我們的目標:
int[] array = new int[] {1, 2, 3};
 List<Integer> integers = Arrays.stream(array)
 .boxed()
 .collect(Collectors.toList())
在上面的代碼中,我們使用Arrays.stream()創建一個IntStream ,使用boxed(),將每個原始int元素包裝為Integer ,最後使用collect().將其包裝為List<Integer> 。這個List可以很容易地用作Iterable.它允許我們使用增強的for循環或與Iterable兼容的任何其他方法來迭代其元素.
3.使用Stream API iterator()
將int[]數組轉換為Iterable另一種方法是使用 Stream API 的iterator()方法。它允許我們直接從流中獲取迭代器,為轉換過程提供了另一個方便的選擇。通過將其與 lambda 表達式或匿名類相結合,我們可以創建自己的Iterable實現。
以下是使用 lambda 表達式創建Iterable<Integer>的示例:
Iterable<Integer> convertWithStreamIterator(int[] array) {
 return () -> Arrays.stream(array).iterator();
 }
或者,我們可以使用匿名類獲得相同的結果:
Iterable<Integer> convertWithStreamIterator(int[] array) {
 return new Iterable<Integer>() {
 @Override
 public Iterator<Integer> iterator() {
 return Arrays.stream(array).iterator();
 }
 };
 }
4. 使用 Apache Commons Lang ArrayUtils
Apache Commons Lang 庫提供了一組豐富的實用程序類,可以簡化常見的編程任務。
讓我們在pom.xml文件中添加Maven 依賴項:
<dependency>
 <groupId>org.apache.commons</groupId>
 <artifactId>commons-lang3</artifactId>
 <version>3.12.0</version>
 </dependency>
現在我們可以在代碼中使用ArrayUtils :
int [] array = new int [] {1, 2, 3};
 List<Integer> integers = Arrays.asList(ArrayUtils.toObject(array));
這裡,我們使用A rrayUtils.toObject()方法將int[]數組轉換為Integer[]數組。然後,我們將Integer[]數組傳遞給Arrays.asList()方法並獲得一個List<Integer> ,它是一個Iterable集合。
5. 使用番石榴
Google 的 Guava 庫為 Java 開發人員提供了許多有用的實用程序。 Ints.asList()方法可用於將int[]數組轉換為List<Integer> ,後者用作Iterable.
讓我們在pom.xml文件中添加Maven 依賴項:
<dependency>
 <groupId>com.google.guava</groupId>
 <artifactId>guava</artifactId>
 <version>32.0.1-jre</version>
 </dependency>
現在我們可以使用Ints.asList() 在代碼中:
int[] array = {1, 2, 3};
 List<Integer> integers = Ints.asList(array);
六,結論
在本文中,我們探討了將 Java 數組轉換為Iterable集合的幾種方法。我們討論了每種方法提供的便利性和靈活性,使開發人員能夠選擇最適合他們需求的方法。
Stream API 提供了collect()和iterator()方法,使用流將數組轉換為Iterable 。 Apache Commons Lang 中的 Apache ArrayUtils將int[]轉換為Integer[] ,然後轉換為List<Integer> 。 Guava 的Ints.asList()直接將數組轉換為List<Integer> 。
通過探索和理解這些不同的方法,我們可以自信地選擇符合我們的編碼風格、項目要求和總體目標的最合適的方法。
與往常一樣,示例的源代碼可在 GitHub 上獲取。