• Java 集合操作


    遍历

    使用Lambda表达式遍历集合

    public class CollectionEach {
        public static void main(String[] args) {
            //创建一个集合
            var a = new HashSet();
            a.add(1);
            a.add(2);
            a.add(3);
            // 调用forEach()方法遍历集合
            a.forEach(obj -> System.out.println("迭代集合元素:" + obj));
        }
    }
    

    使用Iterator遍历集合元素

    public class IteratorTest {
        public static void main(String[] args) {
            //创建一个集合
            var a = new HashSet();
            a.add(1);
            a.add(2);
            a.add(3);
            //获取集合对应的迭代器
            var it = a.iterator();
            while (it.hasNext()){
                //it.next()返回数据类型式object,需要强制转换
                var each = (int)it.next();
                System.out.println(each);
                if (each == 3){
                    //从集合中删除3
                    it.remove();
                }
            }
            System.out.println(a);
        }
    }
    

    使用Lambda表达式遍历Iterator

    public class IteratorEach {
        public static void main(String[] args) {
            //创建一个集合
            var a = new HashSet();
            a.add(1);
            a.add(2);
            a.add(3);
            //获取集合对应的迭代器
            var it = a.iterator();
            it.forEachRemaining(obj -> System.out.println("迭代集合元素:" + obj));
        }
    }
    

    使用foreach遍历集合元素

    public class ForeachTest {
        public static void main(String[] args) {
            //创建一个集合
            var a = new HashSet();
            a.add(1);
            a.add(2);
            a.add(3);
            for (var each : a){
                System.out.println((int)each);
            }
        }
    }
    

    使用Predicate接口过滤集合

    public class ForeachTest {
        public static void main(String[] args) {
            //创建一个集合
            var a = new HashSet();
            a.add(1);
            a.add(2);
            a.add(3);
            for (var each : a){
                System.out.println((int)each);
            }
            //使用Lambda表达式(目标类型是Predicate)过滤集合
            a.removeIf( ele -> (int)ele < 2);
            System.out.println(a);
        }
    }
    
    public class PredicateTest2 {
        public static void main(String[] args) {
            //创建一个集合
            var a = new ArrayList();
            a.add(1);
            a.add(2);
            a.add(3);
            a.add(1);
            a.add(2);
            System.out.println(callAll(a, ele -> (int)ele == 1));
            System.out.println(callAll(a, ele -> (int)ele == 2));
            System.out.println(callAll(a, ele -> (int)ele == 3));
        }
    
        public static int callAll(Collection a, Predicate p){
            int total = 0;
            for (var obj : a){
                //使用Predicate的test()方法判断该对象是否满足Predicate指定的条件
                if (p.test(obj)){
                    total++;
                }
            }
            return total;
        }
    }
    

    使用Stream操作集合

    public class IntStreamTest {
        public static void main(String[] args) {
            var is = IntStream.builder()
                    .add(20)
                    .add(13)
                    .add(-2)
                    .add(18)
                    .build();
            //下面调用的聚集方法只能执行一次
    //        System.out.println("is所有元素的最大值:"+is.max().getAsInt());
    //        System.out.println("is所有元素的最小值:"+is.min().getAsInt());
    //        System.out.println("is所有元素的总和:"+is.sum());
    //        System.out.println("is所有元素的总数:"+is.count());
    //        System.out.println("is所有元素的平均值:"+is.average());
    //        System.out.println("is所有元素的平方是否都大于20:"
    //                + is.allMatch(ele -> ele * ele > 20));
    //        System.out.println("is 是否任何元素的平方都都大于20:"
    //                + is.anyMatch(ele -> ele * ele > 20));
            //将is映射成一个新Stream, 新Stream每个元素是原来的2倍加1
            var newIs = is.map(ele -> ele * 2 + 1);
            newIs.forEach(System.out::println);
        }
    }
    
    public class CollectionStream {
        public static void main(String[] args) {
            //创建一个集合
            var a = new ArrayList();
            a.add(1);
            a.add(2);
            a.add(3);
            a.add(1);
            a.add(2);
            //统计1,2,3的数量
            System.out.println(a.stream().filter(ele -> (int)ele == 1).count());
            System.out.println(a.stream().filter(ele -> (int)ele == 2).count());
            System.out.println(a.stream().filter(ele -> (int)ele == 3).count());
            a.stream().mapToInt(ele -> (int)ele * 2).forEach(System.out::println);
        }
    }
    
  • 相关阅读:
    C#基础知识之静态和非静态
    C#基础知识之类和结构
    jQuery选择器
    ajax和json的优缺点
    说几条JavaScript的基本规范
    vue中异步请求渲染问题(swiper不轮播)(在开发过程中遇到过什么问题、踩过的坑)
    vue响应数据的原理
    面向对象的几种方式(创建对象的几种方式)
    ES6新特性
    HTML和XHTML的区别
  • 原文地址:https://www.cnblogs.com/PythonFCG/p/13860118.html
Copyright © 2020-2023  润新知