[英]Adding alphabets to a Java HashSet
我想将所有小写字母添加到Java HashSet中。 为此,我使用以下代码片段:
for(char c = 'a'; c <= 'z'; c++)
set.add(c);
有没有更好的方法可以做到这一点,例如我不必遍历所有字母?
在使用IntStream
Java 8中,我认为您应该能够像这样获得所有小写的Character
值:
Set<Character> set = IntStream.rangeClosed(Character.MIN_VALUE, Character.MAX_VALUE)
.filter(Character::isLowerCase)
.mapToObj(i -> Character.valueOf((char) i))
.collect(Collectors.toSet());
该Set<Character>
包含1,402个Character
对象。
如果您不想将char
值包装为Character
对象,并且不介意使用第三方库,则可以对Eclipse Collections执行以下操作:
CharSet charSet = IntInterval.zeroTo(Character.MAX_VALUE)
.asLazy()
.select(Character::isLowerCase)
.collectChar(i -> (char) i)
.toSet();
该CharSet
包含1,402个char
值。
如果您不希望所有小写字母,那么只需将范围更改为要查找的字母即可。 例如:
CharSet charSet = IntInterval.fromTo('a', 'z')
.asLazy()
.collectChar(i -> (char) i)
.toSet();
注意:我是Eclipse Collections的提交者
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.