一、

这是在codewords上看到的一个解决方法。
其中.toLowerCase()是变为小写,count()是统计数量(返回long),不再说了。
.chars():

返回值类型为“来自此序列的char值的IntStream”。
Stream 是Java SE 8类库中新增的关键抽象,它被定义于 java.util.stream (这个包里有若干流类型: Stream<T> 代表对象引用流,此外还有一系列特化流,如 IntStream,LongStream,DoubleStream等 )。
Java 8 引入的的Stream主要用于取代部分Collection的操作,每个流代表一个值序列,流提供一系列常用的聚集操作,可以便捷的在它上面进行各种运算。
.distinct():去重
distinct()是Stream接口的方法。distinct()返回由该流的不同元素组成的流。distinct()使用hashCode()和equals()方法来获取不同的元素。因此,我们的类必须实现hashCode()和equals()方法。
如果distinct()正在处理有序流,那么对于重复元素,将保留以遭遇顺序首先出现的元素,并且以这种方式选择不同元素是稳定的。在无序流的情况下,不同元素的选择不一定是稳定的,是可以改变的。distinct()执行有状态的中间操作。在有序流的并行流的情况下,保持distinct()的稳定性是需要很高的代价的,因为它需要大量的缓冲开销。如果我们不需要保持遭遇顺序的一致性,那么我们应该可以使用通过BaseStream.unordered()方法实现的无序流。
二、

先将字符串转为字符数组,之后遍历判断每个字符第一次出现和最后一次出现的位置是否相同,若不同则说明有重复字符。
三、
我自己写的,蛮复杂。

将字符串依次去除字符,放入set集合中,如果放不进去,说明有重复字符。

被折叠的 条评论
为什么被折叠?



