二元运算符的坏操作数类型%

时间:2014-10-22 06:23:03

标签: java arraylist

我正在练习我的java并遇到了一些问题。

我想学习从Arraylist中删除元素,所以我删除了几率。

    public static void arrayLists(){
        List<Integer> xlist = new ArrayList<Integer>();
        for (int x = 0; x < 10; x ++){
            xlist.add(x);
        }
        for (Iterator<Integer> pointer = xlist.iterator(); pointer.hasNext();){
            if (pointer % 2 == 1){
                pointer.remove();
            }
        }
     }

为什么不编译? &#39;二元运算符%&#39;

的错误操作数类型

我认为问题与列表中的元素有关,而我将它们与int(s)进行比较。任何想法如何解决这个问题?

4 个答案:

答案 0 :(得分:0)

应该是:

        if (pointer.next() % 2 == 1){
            pointer.remove();
        }

指针是Iterator,您无法对其执行%。您必须通过调用Ierator来获取pointer.next()当前位置的整数。

答案 1 :(得分:0)

替换:

if (pointer % 2 == 1)

if (pointer.next() % 2 == 1)

答案 2 :(得分:0)

您的代码中存在一些错误,工作代码将是: -

public static void arrayLists(){
   List<Integer> xlist = new ArrayList<Integer>();
   for (int x = 0; x < 10; x++){ //this is not a compiler error but avoid unnecassary spaces , x ++ should be x++
      xlist.add(x);
      }
   Iterator<Integer> pointer = xlist.iterator(); // write this out of the for loop statement, since we wont be needing it
   while(pointer.hasNext()){ //its better to use while loop, since there is no increment for counter variable required, the iterator will do that job
      if (pointer.next() % 2 == 1){ //get current element in iterator by using next() function, pointer.next()
        pointer.remove();
       }
    }
 }

答案 3 :(得分:0)

已完成更改 - if (pointer.next() % 2 == 1).next实际上会返回该对象     公共课测试{

    public static void main(String[] args) {
        arrayLists();
    }

    public static void arrayLists() {
        List<Integer> xlist = new ArrayList<Integer>();
        for (int x = 0 ; x < 10 ; x++) {
            xlist.add(x);
        }
        for (Iterator<Integer> pointer = xlist.iterator() ; pointer.hasNext() ;) {
            if (pointer.next() % 2 == 1) {
                pointer.remove();
            }
        }

        System.out.println(xlist);
    }

}

<强>输出

[0, 2, 4, 6, 8]