如果不使用流操作,那么ArrayList<Integer>与int[]之间的转化必须依靠循环遍历,但是引入jdk1.8中的流操作后就会相当简便。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class MyTest {
public static void main(String[] args) {
int[] data = {1,8,6,4,9,5,3};
//int[]转List<Integer>
List<Integer> list = Arrays.stream(data) //将int[]转换为IntStream(也可以使用IntStream.of())
.boxed() //使用IntStream中的boxed()装箱,将IntStream转换为Stream<Integer>
.collect(Collectors.toList()); //使用Stream的collect(),将Stream<Integer>转换为List<Integer>
//int[]转Integer[]
Integer[] integers = Arrays.stream(data) //将int[]转换为IntStream(也可以使用IntStream.of())
.boxed() //使用IntStream中的boxed()装箱,将IntStream转换为Stream<Integer>
.toArray(Integer[]::new); //使用Stream的toArray,传入IntFunction<A[]> generator,返回Integer[]
//List<Integer>转Integer[]
Integer[] integers1 = list.toArray(new Integer[0]); //调用toArray,传入Integer[]对象
//List<Integer>转int[]
int[] ints = list.stream() //先调用stream()转换成IntStream
.mapToInt(Integer::valueOf) //透过mapToInt(),将Stream<Integer>调用Integer::valueOf转换为IntStream
.toArray(); //使用intStream默认的toArray()转换成int[]
//Integer[]转int[]
int[] ints1 = Arrays.stream(integers) //将Integer[]转换成Arrays,再调用stream()转换成IntStream
.mapToInt(Integer::valueOf) //透过mapToInt(),将Stream<Integer>调用Integer::valueOf转换为IntStream
.toArray(); //使用intStream默认的toArray()转换成int[]
//Integer[]转List<Integer>
List<Integer> list1 = Arrays.asList(integers); //调用Arrays的asList()直接转换
}
}




Comments | NOTHING