Java创建一个偶数ArrayList

时间:2014-06-06 12:20:11

标签: java arraylist

public static List subList(List l)
{
    List evenL = new ArrayList();

    for (int i = 0; i < l.size(); i++)
    {
         if (l.get(i))%2 ==0)
         {
             evenL.add(i);
         }
    }
    return evenL;
}

在这种情况下获取%未定义的错误。不确定如何检索创建具有偶数的新列表。

5 个答案:

答案 0 :(得分:2)

您的List是否包含Integer类型?如果是这样,您需要将泛型应用于List语句中使用的if,以便get可以检索存储的值

public static List subList(List<Integer> list) {
    List<Integer> evenList = new ArrayList<>();

    for (int i = 0; i < list.size(); i++) {
        if (list.get(i) % 2 == 0) { // minus )
            evenList.add(i);
        }
    }

    return evenList;
}

答案 1 :(得分:1)

您之前说过额外的)

您的List未使用Integer参数化。

public static List<Integer> subList(List<Integer> l) {
    List<Integer> evenL = new ArrayList<Integer>();

    for (int i = 0; i < l.size(); i++)
    {
         if (l.get(i) % 2 ==0)
         {
             evenL.add(i);
         }
    }
    return evenL;
}

答案 2 :(得分:0)

)声明中有额外的if。将其更改为:

if (l.get(i) % 2 ==0)
{
    evenL.add(i);
}

如果您使用的是,则可以使用Stream API并在一个语句中执行所需的过滤器:

public static List<Integer> subList(List<Integer> myList) {
    return mylist.stream()
                 .filter(x -> x % 2 == 0)
                 .collect(Collectors.toList());
}

答案 3 :(得分:0)

使用

List<Integer>

否则列表元素为Object,您无法将算术运算应用于Object

答案 4 :(得分:0)

if (l.get(i))%2 ==0)

应该是

if (l.get(i)%2 == 0)