我有一个String,我将其转换为String的每个char的char值的ASCI数字的int流,然后将其映射回String并打印出每个char。
所有这些都有效,但我和。distinct()函数,我不太理解。
对于我的打印机(c)功能,它工作正常,输出为:
hello d
hello c
hello b
hello a
所以它不打印第二个b,但是如果我在字符串仍然有第二个b之后打印出a本身。
这种互动的原因是什么?
公共类映射测试{public static void main(String[]args){
String a = "dcbba";
a.chars().distinct().mapToObj( c -> (char) c).forEach(c -> MapTesting.printer(c));
System.out.println(a);
}
public static void printer(Character c) {
System.out.println("hello " + c);
}
}
流对象不修改原始集合/对象,它们作用于副本。但更重要的是,字符串始终是不可变的,因此将包含定义它的所有内容,是的。
distinct()
在幕后创建一个集,但实际上与您似乎要问的问题无关