字符串的哈希集,仅检索每个元素的第一个单词

问题描述 投票:0回答:3

如果我有HashSet<String>,如何只检索集合中每个元素的第一个单词?

java string split hashset
3个回答
1
投票

要检索集合中每个字符串的第一个单词,请尝试以下操作:

Collection<String> firstWords = set.stream()
    .map(s -> s.split(" ")[0]) // split on spaces, take first element of the split
    .collect(Collectors.toSet());

如果要保留重复项,请将Collectors.toSet()更改为Collectors.toList()


0
投票

您可以像这样获得集合的第一个元素:

if (! set.isEmpty()) {
    first = set.iterator().next();
}

但是,对于HashSet,“ first”元素是任意的,因为它们是无序的,或者如Javadoc所说:

它不保证集合的迭代顺序;特别是,它不能保证顺序会随着时间的推移保持恒定。

而不是HashSet,您可以使用保留插入顺序HashSet,或使用已排序LinkedHashSet,因此在两种情况下,“第一个”的定义都明确。

© www.soinside.com 2019 - 2024. All rights reserved.