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;
}
在这种情况下获取%未定义的错误。不确定如何检索创建具有偶数的新列表。
答案 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);
}
如果您使用的是java-8,则可以使用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)