问题代码:
(想要达到的目的:将c2集合赋值给c集合,并在main方法中能调用(作用范围不局限在该方法体内))
public static void modify(Collection c){
Collection c2=new ArrayList();
Iterator it=c.iterator();
while(it.hasNext()){
Staff s=(Staff)it.next();
if(!c2.contains(s)){ //contains判断的依据是equals,复写equals:内容相等则对象相等
c2.add(s);
}
}
c=c2; //将c2赋值给c
prione(c); //在方法体中完全没问题
}
只能在局部栈区有效:
(传递两个参数Collection c)也没用---------->你不能在里面做交换
加以改进如下:
public static Collection modify(Collection c){
Collection c2=new ArrayList();
Iterator it=c.iterator();
while(it.hasNext()){
Staff s=(Staff)it.next();
if(!c2.contains(s)){
c2.add(s);
}
}
c=c2;
return c;
}
main方法中:c=modify(c); 即可!