java 一个方法 不清楚
 悬赏分:10 - 离问题结束还有 17 天 23 小时 
import java.util.*;public class CollectionTest {
 /**
  * 
  */
 private void testCol(){
  Collection col = new ArrayList();//HashSet();//是排序的,而且还是不重复输出的。
                                   //ArrayList();//是不排序的,不管重复不重复都输出的。  //add
  col.add(1);
  col.add(3);
  col.add(6);
  col.add(3);
  //enum 查询,也是枚举。
  Iterator it = col.iterator();
  while(it.hasNext()){
   Integer a = (Integer)it.next();
   System.out.println("a=="+a);
  }  //update2,放弃上面的方法,在接口Collection<E>用Object[]||toArray()方法,变成一个数组就有位子了,然后再add回去。
  Object objs[] = col.toArray(); //Object[]||toArray()返回包含此 collection 中所有元素的数组。 
  col.clear();////////////////////////////////////////////////////////////////这个地方不明白。
  for(int i=0;i<objs.length;i++){
   if(objs[i].equals(1)){
    objs[i]=4;
   }
   col.add(objs[i]);
  }
  
  it = col.iterator();
  while(it.hasNext()){
   Integer a = (Integer)it.next();
   System.out.println("a.update2_after=="+a);
  }
 } 
 public static void main(String[] args) {
  CollectionTest col = new CollectionTest();
  col.testCol();
 }
}
补充:col.clear();那不清楚,为什么要clear(),是不是它在内存中又开辟了一个空间,复制了一份自己集合里的东西,把objs[]东西都放进去了,然后自己的Collection集合里还有原来的那一份啊?就不要了,删除了。我理解的对吗? 

解决方案 »

  1.   

    在方法上,按住ctrl + 左键
      

  2.   

    //HashSet();//是排序的,而且还是不重复输出的。
    //ArrayList();//是不排序的,不管重复不重复都输出的。

    这个可不一定,你不重写equals方法和hashcode方法,hashset也可以是重复的,不信你可以试试
      

  3.   

    clear()方法的意思是移除此列表中的所有元素楼主可以去看看 JDK的 API的具体的说明。
      

  4.   

    1。col.clear(); 其实就是把原来col中"引用"全都释放,你可以看作都设置为null。
    2。没有复制,col和objs会引用(指向)相同的对象。其实你应该区分清楚 变量(引用) 和 实力对象的概念。
    Java中的变量(对象引用)可以简单的看作“指针”就是保存了地址值。你那些操作只是在复制地址而已,对象没有多出来。要复制的话需要,实现并调用clone()方法。
      

  5.   

    要求还真是高啊 -。- 呵呵
    其实有些入门书籍中就有图例说明,比如scjp考试教材中就有。
      

  6.   

     col.clear();////////////////////////////////////////////////////////////////这个地方不明白。 
    相当于把col指向为null,看输出结果,
    a==1
    a==3
    a==6
    a==3
    a.update2_after==4
    a.update2_after==3
    a.update2_after==6
    a.update2_after==3