articleList

02-Tuple数据类型+Map+FlatMap操作介绍

2025/03/13 posted in  Flink
Tags: 

  • 什么是Tuple类型
    • 元组类型, 多个语言都有的特性, flink的java版 tuple最多支持25个
    • 用途
      • 函数返回(return)多个值,多个不同类型的对象
      • List集合不是也可以吗,集合里面是单个类型
      • 列表只能存储相同的数据类型,而元组Tuple可以存储不同的数据类型
    private static void tupleTest() {
        Tuple3<Integer, String, Long> tuple3 = Tuple3.of(1, "xdclass.net", 120L);
        System.out.println(tuple3.f0);
        System.out.println(tuple3.f1);
        System.out.println(tuple3.f2);
    }
  • 什么是java里面的Map操作
    • 一对一 转换对象,比如DO转DTO
    private static void mapTest() {
        List<String> list1 = new ArrayList<>();
        list1.add("springboot,springcloud");
        list1.add("redis6,docker");
        list1.add("kafka,rabbitmq");

        List<String> result = list1.stream().map(obj -> {
            obj = "小滴课堂" + obj;
            return obj;
        }).collect(Collectors.toList());

        System.out.println(result);
    }
// [小滴课堂springboot,springcloud, 小滴课堂redis6,docker, 小滴课堂kafka,rabbitmq]
  • 什么是java里面的FlatMap操作
    • 一对多转换对象
    private static void flatMapTest() {
        List<String> list1 = new ArrayList<>();
        list1.add("springboot,springcloud");
        list1.add("redis6,docker");
        list1.add("kafka,rabbitmq");

        List<String> result = list1.stream().flatMap(obj -> {
            Stream<String> stream = Arrays.stream(obj.split(","));
            return stream;
        }).collect(Collectors.toList());

        System.out.println(result);
    }
// [springboot, springcloud, redis6, docker, kafka, rabbitmq]