我有一个 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());
有一个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());