上代码
      
     HashSet set = new HashSet();
     set.add("aa");
     set.add("bb");
     set.stream().map(o->{
     System.out.println(o);
      return o;
     });
上面第六行代码不会执行,也就是说不会进stream的map方法,不知道为什么.然后如下代码,改成forEach后就可以了(正常)
        HashSet set = new HashSet();
        set.add("aa");
        set.add("bb");
        set.stream().forEach(o->{
            System.out.println(o);
        });为什么hashset的stream.map方法不会执行,望哪位知道的帮忙解释下,谢谢.

解决方案 »

  1.   

    自己顶下,hashset.stream().map()方法没反应,是不是要设置什么参数才可以用,望大家帮忙
      

  2.   

    stream().map() 是对元素进行转换,不是历遍。
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    HashSet<String> set = new HashSet<String>();
         set.add("aa");
         set.add("bb");
         set.add("cc");
         set.stream().forEach(str->System.out.println(str));
             set.stream().map(str->str+"dd").forEach(str->System.out.println(str));
    }
    输出结果:aa
    bb
    cc
    aadd
    bbdd
    ccdd
      

  3.   

    stream().map()本身返回的还是一个stream
      

  4.   

     HashSet set = new HashSet();
         set.add("aa");
         set.add("bb");
         set.stream().map(o->{
         System.out.println(o);
          return o;
         }).collect(Collectors.toList());把这个加上
      

  5.   

    在后面加上collect(Collectors.toSet()).     map可以理解为从集合中获取数据的方式, 没有后续操作的话, 该方式应该没有调用