有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

二进制运算符%的java错误操作数类型

我在练习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();
            }
        }
     }

为什么不编译?”二进制运算符%'的操作数类型错误

我认为这个问题与列表中的元素是整数有关,而我将它们与int(s)进行比较。有没有办法解决这个问题


共 (3) 个答案

  1. # 1 楼答案

    替换:

    if (pointer % 2 == 1)
    

    if (pointer.next() % 2 == 1)
    
  2. # 2 楼答案

    应该是:

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

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

  3. # 3 楼答案

    更改已完成-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]