美文网首页Android
android中使用Stream

android中使用Stream

作者: 漆先生 | 来源:发表于2022-08-08 11:28 被阅读0次

一、版本支持

官方介绍地址
AGP4.0开始支持使用多种 Java 8 语言 API,而无需为应用设置最低 API 级别。
新版支持如下Api,我们介绍Stream的使用

  • 顺序流 (java.util.stream)
  • java.time 的子集
  • java.util.function
  • java.util.{Map,Collection,Comparator} 的最近新增内容
  • 可选内容(java.util.Optional、java.util.OptionalInt 和 java.util.OptionalDouble)以及对上述 API 很有用的一些其他新类
  • java.util.concurrent.atomic 的一些新增内容(AtomicInteger、AtomicLong 和 AtomicReference 的新方法)
    ConcurrentHashMap(包含 Android 5.0 的问题修复)

二、配置

在应用模块的 build.gradle 文件中添加以下代码


android {
  defaultConfig {
    // Required when setting minSdkVersion to 20 or lower
    multiDexEnabled = true
  }

  compileOptions {
    // Flag to enable support for the new language APIs
    isCoreLibraryDesugaringEnabled = true
    // Sets Java compatibility to Java 8
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
  }
}

dependencies {
  coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.0.4")
}

三、使用方法

参考链接:https://blog.csdn.net/weiqiang915/article/details/107209981/

        //五个user对象
        User user1 = new User(1, "张三", 10);
        User user2 = new User(2, "李四", 15);
        User user3 = new User(3, "王五", 20);
        User user4 = new User(4, "赵六", 25);
        User user5 = new User(5, "严七", 30);

        //将User对象存入list
        List<User> userList = new ArrayList<>();
        userList.add(user1);
        userList.add(user2);
        userList.add(user3);
        userList.add(user4);
        userList.add(user5);

        //1.stram()方法:将集合装为流
        Stream<User> stream = userList.stream();

        //2.collect()方法:将流转为集合
        List<User> users = userList.stream().collect(Collectors.toList());

        //3.filter()方法:过滤元素
        List<User> userList1 = userList.stream()
                .filter(user -> user.getAge() > 20)//过滤出年龄大于20的use
                .collect(Collectors.toList());//将流转回集合

        //4.map()方法:将每个元素映射成新元素
        List<User> userList2 = userList.stream().filter(user -> user.getAge() > 20)
                .map(user -> {
                    user.setAge(50);//将过滤得到的user对象的年龄设置为50
                    return user;
                })
                .collect(Collectors.toList());//将流转为集合

        //5.limit(n):获取n个元素
        List<User> userList3 = userList.stream().limit(3).collect(Collectors.toList());

        //6.skip(n):跳过n元素
        List<User> userList4 = userList.stream().skip(2).collect(Collectors.toList());

        //7.distinct:去除重复元素
        userList.add(user5);
        List<User> userList6 = userList.stream().distinct().collect(Collectors.toList());

相关文章

网友评论

    本文标题:android中使用Stream

    本文链接:https://www.haomeiwen.com/subject/ythpwrtx.html