宅男/kel 发表于 2021-3-12 12:55

【JAVA】关于1.8新特性的题目

本帖最后由 宅男/kel 于 2021-3-12 12:57 编辑

String[] test={"tom","jerry","lily","lucy","apple","atom","tommy","toms"};
题目:1 使用stream对数组继续处理。2 找到包含“tom”并且长度>=4的所有单词 3、对步骤2找到的单词后加上单词的长度 如“atom”-》“atom4” 4、将步骤23处理的结果 转换成list集合打印

求助不知道解题思路 不知道怎么动手

1281407155 发表于 2021-3-12 12:55

Arrays.stream(test).filter(s -> s.contains("tom") && s.length() >= 4)
                .map(s -> s + "->" + s.length()).collect(Collectors.toList());

1281407155 发表于 2021-3-12 13:30

Arrays.stream(test).filter(s -> s.contains("tom") && s.length() >= 4)
                .map(s -> s + "->" + s.length()).collect(Collectors.toList());

老夫元婴期 发表于 2021-3-12 13:40

List<String> results = Arrays.stream(test).filter(t -> t.length()>=4 && t.indexOf("tom")>=0).map(t -> t + t.length()).collect(Collectors.toList());

刚刚对着菜鸟教程现学的stream,感觉不好用

真的小白 发表于 2021-3-12 13:40

本帖最后由 真的小白 于 2021-3-12 13:47 编辑

今天在学习的时候,刚好就遇到了对List的处理

    public static void main(String[] args) {
      String[] test = {"tom", "jerry", "lily", "lucy", "apple", "atom", "tommy", "toms"};
      //1 使用stream对数组继续处理
      var testStream = Arrays.stream(test);
      //2 找到包含“tom”并且长度>=4的所有单词
      var findTom = testStream.filter(str -> str.contains("tom") && str.length() >= 4);
      //3、对步骤2找到的单词后加上单词的长度 如“atom”-》“atom4”
      var tomAppendLength = findTom.map(str -> str = str + str.length());
      //4、将步骤23处理的结果 转换成list集合
      var tomList = tomAppendLength.collect(Collectors.toList());
      //5、打印
      tomList.forEach(str -> System.out.println(str));
    }


老夫元婴期 发表于 2021-3-12 13:42

Arrays.stream(test).filter(t -> t.length()>=4 && t.indexOf("tom")>=0).map(t -> t + t.length()).collect(Collectors.toList()).forEach(t -> System.out.println(t));
刚刚没注意要打印出来,那就加一句
页: [1]
查看完整版本: 【JAVA】关于1.8新特性的题目