如何将旧的for循环更改为IntStream?
发布时间:2020-12-15 04:40:57 所属栏目:Java 来源:网络整理
导读:这个for循环遍历int数组.它将(index-1)的值更改为当前索引的值.所以结果应该是,所有元素必须等于最后一个元素的值. int arr[] = {8,5,15,23,1,7};for (int i = arr.length - 1; i 0; i--) { arr[i - 1] = arr[i];} 如何在Java 8中将这个旧的for循环更改为Int
这个for循环遍历int数组.它将(index-1)的值更改为当前索引的值.所以结果应该是,所有元素必须等于最后一个元素的值.
int arr[] = {8,5,15,23,1,7}; for (int i = arr.length - 1; i > 0; i--) { arr[i - 1] = arr[i]; } 如何在Java 8中将这个旧的for循环更改为IntStream,使其变得现代化. 解决方法
你可以使用IntStream这样写,但它几乎没有更好:
IntStream.range(0,arr.length - 1).forEach(i -> arr[i] = arr[arr.length - 1]); 注意,我简化了赋值,从arr [i – 1] = arr [i]直接用arr [i] = arr [arr.length – 1]赋值给最后一个元素的值.如果你想编写与原始版本完全相同的赋值,可以通过将范围映射到反向索引来实现, 如果保证arr非空,那么使用 Arrays.fill(arr,arr[arr.length - 1]); 总而言之,我不认为你应该过分担心使用流写一切.在自然而轻松的地方使用溪流.“聪明”代码不是更好的代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |