Java8新特新--Stream语法应用在ArrayList的元素移除和排序
2017-12-22 14:56
405 查看
单元测试:
运行效果:
@Test public void Test02(){ // 源 ArrayList<Integer> IdsSour = new ArrayList<>(); IdsSour.add(5); IdsSour.add(1); IdsSour.add(3); IdsSour.add(2); IdsSour.add(6); IdsSour.add(4); // 目标 List<Integer> IdsDes = new ArrayList<>(); System.out.println("============移除 4 ============"); IdsDes = (ArrayList<Integer>) IdsSour.stream().filter(id->id!=4).collect(Collectors.toList()); for (Integer id : IdsDes) { System.out.println(id); } System.out.println("============移除 4 5 6============\n\n"); int[] ids = new int[]{4,5,6}; //按ID的 大小 从大到小 逆序 排列 IdsDes = (List<Integer>) IdsSour.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()); for(int i = 0 ;i < ids.length ; i++){ int ret = ids[i]; //filter的写法 比 直接if判断再remove要含蓄的多,看起来舒服,但是效率不见得有for循环快 IdsDes = (ArrayList<Integer>) IdsDes.stream().filter(id->id!=ret).collect(Collectors.toList()); System.out.println("+++++++++++++++++第"+(i+1)+"次过滤后"); for (Integer id : IdsDes) { System.out.println(id); } } System.out.println("=================================="); //最后 按自然排序【默认】打印出IDsDes的内容 //先sorted再foreach -- 简单优雅 -- 优雅的背后 必定会有牺牲 IdsDes.stream().sorted().collect(Collectors.toList()).forEach(id->System.out.println(id)); }
运行效果:
相关文章推荐
- Java易错知识点(1) - 关于ArrayList移除元素后剩下的元素会立即重排
- Java易错知识点(1) - 关于ArrayList移除元素后剩下的元素会立即重排
- Java如何对ArrayList里的元素排序
- Java如何对ArrayList里的元素排序
- Java中ArrayList 元素的排序
- java 数组比较,元素的比较,Comparable,Comparator比较的应用实现,排序,查找示例
- ArrayList根据指定条件移除元素和去重(java)
- java8 stream初试,map排序,list去重,统计重复元素个数,获取map的key集合和value集合
- Java如何对ArrayList里的元素排序
- Java ArrayList的元素添加移除之java.util.ConcurrentModificationException异常分析
- java对arrayList中的元素进行排序
- Java如何对ArrayList里的元素排序
- java对ArrayList中的元素自定义排序
- Java易错知识点(1) - 关于ArrayList移除元素后剩下的元素会立即重排
- java对ArrayList中的元素自定义排序
- Java集合类ArrayList删除特定元素(java基础) java.lang.IndexOutOfBoundsException:
- Java之——删除ArrayList中的反复元素的2种方法
- LeetCode 26 Remove Duplicates from Sorted Array(从已排序数组中移除重复元素)
- Java8初体验(二)Stream语法 3
- Java中的对List中元素进行自定义排序