本帖最后由 ctreess 于 2011-09-17 16:46:18 编辑

解决方案 »

  1.   

    ArrayList有重载的remove方法 一个参数是int 一个参数是Object 你传入'E' 他会当成char 无法匹配Object参数的,将匹配int类型参数 发现可以转成int类型传入(也就是字符的ascii码),就用的remove(int)
    E的ASCII码是69
    如果你用 C.remove ( (Character)'E' );就可以了
      

  2.   

    package csdn;import java.util.ArrayList;
    import java.util.List;public class Al {
        public static void main(String[] args){
        
            List<Object> C = new ArrayList<Object>();
            for ( int i = 0 ; i < 10; i++){
                C.add(new Character((char)(i+65)));
            }
            C.remove(2);
            C.remove((Character)'E');
            System.out.print(C);
        }
    }
      

  3.   

    因为E对应的ACII是69,所以执行C.remove('E')时,编译器会认为你想remove掉List索引为69的元素,但是你的List只有10个元素,所以会出现IndexOutOfBoundsException。想移除E可以这样用:
    C.remove((Character)'E')因为API中 remove(Object o),那个参数是Object,而不是基本类型。