繁体   English   中英

将字母添加到Java HashSet

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM