Java 收集器 class 用法
Java collector class usage
所以我试图理解这一点,但将其转化为简单的陈述。但是我很难这样做。
Var 是一个列表 class,其中包含一堆值。我对代码的理解很模糊。这段代码是从 assigned 中抓取尚未分配的值,并将其输入到 List of unassigned 中。但是我不明白如何将它翻译成简单的语句来帮助我更清楚地理解它。
List<Var> unassigned = assigned.stream()
.filter((Var grabNear).(!grabNear.isAssigned()))
.collect(Collectors.toList());
这就是我目前所拥有的。这是正确的吗?
List<Var> unassigned = assigned;
Var grabNear;
for(int i = 0; i < assigned.size(); ++i)
{
grabNear = assigned.get(i);
if(!grabNear.isAssigned())
{
unassigned.add(grabNear);
}
}
Collectors.toList()
创建一个新的 List
,因此您的代码应该如下所示,以便等同于 Java 8 代码:
List<Var> unassigned = new ArrayList<>();
Var grabNear;
for(int i = 0; i < assigned.size(); ++i)
{
grabNear = assigned.get(i);
if(!grabNear.isAssigned())
{
unassigned.add(grabNear);
}
}
P.S。 Java 8 代码在过滤器方法调用中有错误。应该是:
.filter((Var grabNear) -> !grabNear.isAssigned())
或
.filter(grabNear -> !grabNear.isAssigned())
所以我试图理解这一点,但将其转化为简单的陈述。但是我很难这样做。
Var 是一个列表 class,其中包含一堆值。我对代码的理解很模糊。这段代码是从 assigned 中抓取尚未分配的值,并将其输入到 List of unassigned 中。但是我不明白如何将它翻译成简单的语句来帮助我更清楚地理解它。
List<Var> unassigned = assigned.stream()
.filter((Var grabNear).(!grabNear.isAssigned()))
.collect(Collectors.toList());
这就是我目前所拥有的。这是正确的吗?
List<Var> unassigned = assigned;
Var grabNear;
for(int i = 0; i < assigned.size(); ++i)
{
grabNear = assigned.get(i);
if(!grabNear.isAssigned())
{
unassigned.add(grabNear);
}
}
Collectors.toList()
创建一个新的 List
,因此您的代码应该如下所示,以便等同于 Java 8 代码:
List<Var> unassigned = new ArrayList<>();
Var grabNear;
for(int i = 0; i < assigned.size(); ++i)
{
grabNear = assigned.get(i);
if(!grabNear.isAssigned())
{
unassigned.add(grabNear);
}
}
P.S。 Java 8 代码在过滤器方法调用中有错误。应该是:
.filter((Var grabNear) -> !grabNear.isAssigned())
或
.filter(grabNear -> !grabNear.isAssigned())