Java如何将整数集合转换成int数组


Java中的集合对象是在其中存储其他对象的引用的对象。 java.util包提供了集合的类和接口。 有四个主要的收集接口,即集合列表,队列,映射。

Set - set对象是一个存储元素组的集合,它动态增长,并且不允许重复元素。

HashSet和LinkedHashSet是实现Set接口的类。您可以通过实现这两个类之一来创建Set对象。

示例

import java.util.HashSet;
public class SetExample {
   public static void main(String args[]) {
      //实例化HashSet
      HashSet<String> hashSet = new HashSet<String>();
      //填充HashSet
      hashSet.add("Mango");
      hashSet.add("Apple");
      hashSet.add("Cherries");
      hashSet.add("Banana");
      System.out.println(hashSet);
   }
}

输出结果

[Apple, Mango, Cherries, Banana]

将Set对象转换为数组

您可以通过多种方式将集合对象转换为数组-

add每个元素-可以使用foreach循环将Set对象的每个元素添加到数组中。

示例

import java.util.HashSet;
import java.util.Set;
public class SetExample {
   public static void main(String args[]) {
      //实例化HashSet
      Set<Integer> hashSet = new HashSet<Integer>();
      //填充HashSet
      hashSet.add(1124);
      hashSet.add(3654);
      hashSet.add(7854);
      hashSet.add(9945);
      System.out.println(hashSet);
      //创建一个空的整数数组
      Integer[] array = new Integer[hashSet.size()];
      //将集合对象转换为整数数组
      int j = 0;
      for (Integer i: hashSet) {
         array[j++] = i;
      }
   }
}

输出结果

[1124, 3654, 9945, 7854]

使用toArray()方法 -Set接口的toArray()方法接受一个数组,使用当前set对象中的所有元素填充该数组,然后将其返回。使用此方法,可以将Set对象转换为数组。

示例

import java.util.HashSet;
import java.util.Set;
public class SetExample {
   public static void main(String args[]) {
      //实例化HashSet
      Set<Integer> hashSet = new HashSet<Integer>();
      //填充HashSet
      hashSet.add(1124);
      hashSet.add(3654);
      hashSet.add(7854);
      hashSet.add(9945);
      //创建一个空的整数数组
      Integer[] array = new Integer[hashSet.size()];
      //将Set对象转换为整数数组
      hashSet.toArray(array);
      System.out.println(Arrays.toString(array));
   }
}

输出结果

[1124, 3654, 9945, 7854]

使用Java8:因为引入了Java8流,并且这些流提供了将集合对象转换为数组的方法。

示例

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class SetExample {
   public static void main(String args[]) {
      //实例化HashSet
      Set<Integer> hashSet = new HashSet<Integer>();
      //填充HashSet
      hashSet.add(1124);
      hashSet.add(3654);
      hashSet.add(7854);
      hashSet.add(9945);
      System.out.println(hashSet);
      //创建一个空的整数数组
      Integer[] array = hashSet.stream().toArray(Integer[]::new);
      System.out.println(Arrays.toString(array));
   }
}

输出结果

[1124, 3654, 9945, 7854]