A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 向日葵的曙光 中级黑马   /  2014-4-14 22:41  /  1430 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class CollectionDemo1 {
        public static void main(String[] args) {
                method_get();
        }
public static void method_get(){
                ArrayList alList=new ArrayList();
                ArrayList alList1=new ArrayList();
                Person p1=new Person("张珊",18);
                Person p2=new Person("王五",20);
                alList.add(p1.getName()+":"+p1.getAge());
                alList.add(p2.getName()+":"+p2.getAge());
                alList.add("java001");
                Iterator it=alList.iterator();
                while(it.hasNext()){
                        Object object=it.next();
                        if(object.equals("java001")){
                                it.remove();
                        }
                        System.out.println("原集合:"+object);
                }
}
class Person{
        private String name=null;
        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        public int getAge() {
                return age;
        }
        public void setAge(int age) {
                this.age = age;
        }
        private int age=0;
        Person(String name,int age) {
                this.name=name;
                this.age=age;
        }
       
}
元集合输出时为啥又把删除的那个元素输出来了,求解释,最好能够详细点

评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 需要自己努力的检查下

查看全部评分

3 个回复

倒序浏览
public static void method_get() {
                ArrayList alList = new ArrayList();
                Person p1 = new Person("张珊", 18);
                Person p2 = new Person("王五", 20);
                alList.add(p1.getName() + ":" + p1.getAge());
                alList.add(p2.getName() + ":" + p2.getAge());
                alList.add("java001");
                Iterator it = alList.iterator();
                while (it.hasNext()) {
                        Object object = it.next();
                        if (object.equals("java001")) {
                                it.remove();
                        }
                        System.out.println("原集合:" + object);
                }
        }
你输出的是while循环中的变量object,而不是list中的,你remove的操作删除的list中的元素,但是你输出的变量,当然能输出了。在后面加个输出新list的循环,就没有你删除的元素了

                for (Object object : alList) {
                        System.out.println("原集合:" + object);
                }

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
import java.util.ArrayList;
import java.util.Iterator;

public class ArrayListTest{
        public static void method_get() {
            ArrayList<String> alList = new ArrayList<String>();
            alList.add("java001");
            alList.add("java002");
            Iterator<String> it = alList.iterator();
            while (it.hasNext()) {
                    if (it.next().equals("java001")) {
                            it.remove();
                    }
                    System.out.println("原集合:"+it.next());
            }
        }
        public static void main(String[] args) {
                method_get();
        }
}

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
Silent_memory 这哥们说的是对的,首先你要搞清楚,你要做什么事情,把思路理清了,写下来。就ok了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马