## 求平均值,输入是包装类型,输出是原始类型
double average = re.stream().mapToInt(x -> x).average().orElse(0.0);
int数组的包装类型相互转换
Integer[] obj = Arrays.stream(arr1).boxed().toArray((Integer[]::new));
int[] ints = Arrays.stream(obj).mapToInt(Integer::intValue).toArray();
数组转换成列表
常用的2种方法
下面的这种虽然看着简单,但是不支持元素添加删除,是只读对象,因此要视情况来使用
List<Integer> list1 = Arrays.stream(data).boxed().collect(Collectors.toList());
List<Integer> listInteger = Arrays.asList(integers);
所有例子代码
public static void main(String[] args) {
int[] data = {4, 5, 3, 6, 2, 5, 1};
double v = Arrays.stream(data).average().orElse(0);
double v1 = Arrays.stream(data).mapToDouble(x -> x).average().orElse(0);
Double[] doubles = Arrays.stream(data).mapToDouble(x->x).boxed().toArray(Double[]::new);
// 包装类型stream没有求最值的函数
// Arrays.stream(doubles).average()
// 转换成基本类型后有求均值
double v2 = Arrays.stream(doubles).mapToDouble(x -> x).average().orElse(0.0);
// int[] 转 List<Integer>
List<Integer> list1 = Arrays.stream(data).boxed().collect(Collectors.toList());
list1.add(100);
System.out.println(list1);
// List<int> listints = Arrays.asList(data); //报错
List<int[]> listints = Arrays.asList(data);
System.out.println(listints.get(0));
Integer[] integers = Arrays.stream(data).boxed().toArray(Integer[]::new);
// 这种方式 虽然简单,但不支持添加元素,会报UnsupportedOperationException
List<Integer> listInteger = Arrays.asList(integers);
System.out.println(listInteger);
listInteger.add(100);
}
输出结果如下: