当我们想删除数组中有特定规律的元素时,使用数组遍历的效率太低了,这时我们可以使用Stream流来解决这一问题
例如我们要删除数组中的偶数,然后再给每个元素乘2
普通做法
// 创键一个int类型的数组 int[] arr ={3,5,2,0,4,10}; // 创键一个List集合 List<Integer> list = new ArrayList<>(); // 将数组中的偶数删除 for (int i = 0; i < arr.length; i++) { if(arr[i]%2!=0){ list.add(arr[i]); } } // 对数组中的每个元素乘2 for (int i = 0; i < list.size(); i++) { list.set(i,list.get(i)*2); } // 以数组的形式进行输出 int[] data = new int[list.size()]; for (int i = 0; i < data.length; i++) { data[i] = list.get(i); } System.out.println(Arrays.toString(data));
使用Stream流
三种方式
1.使用stream流的of方法Stream.of(arr);2.使用数组的Arrays.stream
Arrays.stream(arr);3.如果是集合类,继承了Collection的.stream
List<String> list = new ArrayList<>(); list.stream();在使用流时,流会一去不复返.使用前需充分考虑.
1.首先创建一个数组
int[] arr ={3,5,2,0,4,10};
2.使用Arrays.stream
Arrays.stream(arr).filter(item->{ return item%2!=0; }).map(item->{ return item*2; }).toArray();
3.可以使用Stream流中的forEach方法遍历数组中的元素
Arrays.stream(arr).filter(item->{ return item%2!=0; }).map(item->{ return item*2; }).forEach(item->{ System.out.println(item); });
使用Lambda表达式使代码更简洁
Arrays.stream(arr).filter(item->item%2!=0).map(item->item*2).forEach(System.out::println);
后面我会专门更新一篇关于Stream流的内容和一篇Lambda表达式的内容,大家可以持续关注