因此,我试图理解这一点,但将其翻译为简单的声明。但是我这样做很麻烦。

Var是一个List类,包含一堆值。我对代码含糊不清。此代码从未分配的值中获取未分配的值,并将其输入到未分配的列表中。但是我不知道如何将其转换为简单的陈述以帮助我更清楚地理解它。

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);
    }
}

附言Java 8代码的filter方法调用中有错误。它应该是 :
.filter((Var grabNear) -> !grabNear.isAssigned())

要么
.filter(grabNear -> !grabNear.isAssigned())

07-26 03:10