如何从java.util.Set中获取第一个项目?

2022-08-31 15:15:17

我有一个 Set 实例:

Set<String> siteIdSet = (Set<String>) pContext.getParent().getPropertyValue(getCatalogProperties().getSitesPropertyName());

这是开箱即用的代码,我无法控制对其进行修改。pContext.getParent().getPropertyValue()

要求:

我想从中获取第一个默认元素(总是)。但是,我找不到像.get(index)ArrayList

因此,现在,我正在这样做。

for (Iterator<String> it = siteIdSet.iterator(); it.hasNext();) {
    siteId = it.next();
    break;
}

有没有(其他)有效的方法(简短而更好)来实现这一目标?


答案 1

这将返回第一个元素

set.iterator().next();

答案 2

或者,使用 Java8:

Object firstElement = set.stream().findFirst().get();

然后你可以直接用它做一些事情:

set.stream().findFirst().ifPresent(<doStuffHere>);

或者,如果您想提供替代方法以防元素丢失(我的示例返回新的默认字符串):

set.stream().findFirst().orElse("Empty string");

如果缺少第一个元素,您甚至可以引发异常:

set.stream().findFirst().orElseThrow(() -> new MyElementMissingException("Ah, blip, nothing here!"));

感谢促使我提供更多示例,而不仅仅是第一个元素的初始抓取。Alex Vulaj


推荐