如果我有HashSet,如何只检索Set中每个元素的第一个单词?
来源:爱站网时间:2021-11-17编辑:网友分享
如果我有HashSet,如何只检索Set中每个元素的第一个单词?爱站技术小编最近被这个问题困扰了好久啊,崩溃,现在终于找到了答案,发出来帮助一下你们,哈哈。
问题描述
如果我有HashSet
,如何只检索集合中每个元素的第一个单词?
思路一:
要检索集合中每个字符串的第一个单词,请尝试以下操作:
Collection firstWords = set.stream()
.map(s -> s.split(" ")[0]) // split on spaces, take first element of the split
.collect(Collectors.toSet());
如果要保留重复项,请将Collectors.toSet()
更改为Collectors.toList()
思路二:
您可以像这样获得集合的第一个元素:
if (! set.isEmpty()) {
first = set.iterator().next();
}
但是,对于HashSet
,“ first”元素是任意的,因为它们是无序的,或者如Javadoc所说:
它不保证集合的迭代顺序;特别是,它不能保证顺序会随着时间的推移保持恒定。
而不是HashSet
,您可以使用保留插入顺序的HashSet
,或使用已排序的LinkedHashSet
,因此在两种情况下,“第一个”的定义都明确。
以上内容就是爱站技术频道小编为大家分享的如果我有HashSet,如何只检索Set中每个元素的第一个单词?看完以上分享之后,大家应该都知道怎么操作了吧。