我有一个 HashSet<Prerequisite> pre。有没有一种快速的方法来做 HashSet<int> PreIDs = for each x do x.getID in Pre? (在Java)

I have a HashSet<Prerequisite> pre. Is there a fast way to do HashSet<int> PreIDs = for each x do x.getID in Pre? (in Java)

有一个classPrerequisite,它有一个方法getID()

而不是做

HashSet<int> PreIDs = new HashSet<>();

for(Prerequisite p: pre// HashSet of Prerequisites)
{
   PreIDs.add(p.getID())
}

是否有更高效或更简洁的方法来调用 HashSet 上的方法?

正如@ernest_k所说,在我看来也没有比这更有效的方法了。但是我们可以使用流将整个逻辑写在一行中,如下所示(如果您使用的是 Java 8 或更高版本):

Set<Integer> PreIDs = pre.stream()
    .map(Prerequisite::getID)
    .collect(Collectors.toSet());