for(int i=0; i<fill.length; i++) {
fill[i] = list2.remove(random2.nextInt(list2.size()));
//System.out.println("remove = " + list2.remove(random2.nextInt(list2.size())));
  }
list的remove方法怎么会有返回值呢?
注释的那一句代码说明它没有返回值,但是不是返回值它有怎么能给fill数组赋值呢?
请大家详解,谢了……

解决方案 »

  1.   

    List做remove会返回删除掉的元素,你之所以证明它没有返回值是因为你已经删除了还有用null填充数组也没有错!~
      

  2.   

    remove()是将其中的元素给删除
      

  3.   

    remove 返回 boolean 类型  或者 Object 类型,看你的remove(xx)中的xx是什么了
      

  4.   

    E remove(int index)移除列表中指定位置的元素(可选操作)。将所有的后续元素向左移动(将其索引减 1)。返回从列表中移除的元素。 参数:
    index - 要移除的元素的索引 
    返回:
    以前在指定位置的元素 这个肯定是有返回值的。你注释的那名没返回值是不是你的list里面有空串,而remove(int i) 的正好是这个空串,所以你就看不出来 了。
      

  5.   

    boolean remove(Object o)移除列表中出现的首个指定元素(可选操作)。如果列表不包含元素,则不更改列表。更正式地说,移除具有满足下面条件的最低索引 i 的元素:(o==null ? get(i)==null :o.equals(get(i)))(如果存在这样的元素)。
    若有,只移除最低索引的一个 返回成功与否,若没有返回false;
    若参数为索引必须在数组长度内,否则:java.lang.IndexOutOfBoundsException
    返回值为所移除的元素