(63)ListIterator用法、List均有的增删改查

Collection
——List;元素有序,元素可以重复。因为该集合体系有索引
——Set:元素是无序的,元素不可以重复
List:
特有方法:凡是可以操作角标的方法都是该体系特有的方法。
带角标
增:add(index,element);
addAll(index,Collection)
删:remove(index)
改:set(index,element)
查:get(index)
subList(from,to);
listIterator();

    ArrayList al=new ArrayList();
        //添加元素
        al.add("java01");
        al.add("java02");
        al.add("java03");

        //按照位置插入元素
        al.add(1, "java04");//1423


        //增加一个集合
        ArrayList al2=new ArrayList();
        //添加元素
        al2.add("java04");
        al2.add("java05");
        al.addAll(2, al2);//144523

        //按照索引删除一个元素
        al.remove(3);////14423

        //在特定位置修改元素
        al.set(1, "java05");//15423

        //通过角标获取元素
        sop("get(3)="+al.get(3));//java02

        //通过元素,判断位置
        al.indexOf("java04");//下标是2

        //获取所有元素
        for(int x=0;x<al.size();x++) {
            sop("al("+x+")="+al.get(x));
        }

        //获取子集合(不包含尾)
        List a2= al.subList(2, 4);
        sop("sub="+a2);//42

List集合特有的迭代器。ListIterator是Interator的子接口。
在迭代时,不可以用集合对象的操作集合中的元素。
因为会发生java.util.ConcurrentModificationException异常。
所以,在迭代器中,只能用迭代器的方法操作元素,可以Iterator方法是有限 的,只能对元素进行判断、取出、删除的操作。
如果想要其他的操作,修改等,就需要使用其子接口:ListIterator
该接口只能通过ListIterator方法获取。

通过Iterator迭代器操作集合

 ArrayList al=new ArrayList();
            //添加元素
            al.add("java01");
            al.add("java02");
            al.add("java03");
            //在迭代过程中,准备添加或者删除元素
            Iterator it=al.iterator();
            while(it.hasNext()){
                Object obj=it.next();
                if(obj.equals("java02")) 
                    //al.add("java008");
                     it.remove();
                sop("obj="+obj);//obj仍可以输出Java02的原因:虽然没有集合里没有这个引用,但是在没移除之前,obj指向了Java02
            //通过Iterator迭代器,已经确定的元素的个数,不能通过集合的方式增删,若增删,则发生异常java.util.ConcurrentModificationException
            //当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。 
            //在迭代器中有remove()方法,可用迭代器的方法进行操作,将集合中对Java02对象的引用去除,即不在集合中了。
            //在Iterator迭代器中只能判断(hasNext)、获取(next)、移除(remove)
    }
            sop(al);

}

通过ListIterator迭代器操作集合
hasNext

 ArrayList al=new ArrayList();
            //添加元素
            al.add("java01");
            al.add("java02");
            al.add("java03");
            ListIterator li=al.listIterator();
            while(li.hasNext()) {
                Object obj=li.next();
                if(obj.equals("java02"))
                  ①li.add("java04");//该元素直接插入到 next 返回的下一个元素的前面(如果有),或者 previous 返回的下一个元素之后(如果有);
                                   //插入到下一个的前面,即当前元素的后面
                sop(obj);

            }
            sop(al);//[java01, java0000, java03]
}
② li.set("java00");在当前元素处修改  al=[java01, java0000, java03]

hasPrevious

sop("hasNext():"+li.hasNext());//true
            sop("hasPrevious():"+li.hasPrevious());//false
            while(li.hasNext()) {
                Object obj=li.next();
                if(obj.equals("java02"))
                   //li.add("java04");//该元素直接插入到 next 返回的下一个元素的前面(如果有),或者 previous 返回的下一个元素之后(如果有);
                   li.set("java0000");                //插入到下一个的前面,即当前元素的后面
                sop(obj);
            }
            sop("hasNext():"+li.hasNext());//false
            sop("hasPrevious():"+li.hasPrevious());//true
            sop("---------------------");

            while(li.hasPrevious()) {
                Object obj=li.previous();
                if(obj.equals("java0000"))
                   ①li.add("java04");//previous 返回的下一个元素之后(如果有);[java01, java04, java0000, java03]
                   li.set("java0q"); //[java01, java0q, java03]               
                sop(obj);
            }
②li.set("java0q"); //[java01, java0q, java03]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单片微型计算机(MCU)经过多年的发展,在性能上有很大的进步,在型号上发展到上千种类,已经广泛应用于人类社会生活的各个领域。单片机课程已经成为高校计算机、自动化、测控以及电子信息工程等专业的重要课程。该课程是一门理论性和实践性都很强的课程,在实际教学中,应将理论教学和实验教学紧密结合。学生在掌握理论知识之余,必须通过编写程序、设计硬件电路、仿真、调试这一系列的实验过程,才能更好地掌握单片机的结构原理和应用技能。随着单片机及其接口技术的飞速发展,目前市场上供应的编程仿真实验资源并不能完全满足高校单片机课程教与学的需求,构建低成本、技术先进、源码公开的单片机编程仿真实验系统,对我国单片机课程的教学和单片机领域人才的培养具有重要的现实意义。 本论文结合目前教学中对单片机编程仿真实验系统的实际需求,采用模块化结构设计思想,精心设计和开发了单片机编程仿真实验系统。该单片机编程仿真实验系统由PC机端单片机编程控制软件和单片机编程仿真实验板两部分组成。PC机端的单片机编程控制软件可以自动检测到连接到单片机编程仿真实验板上的单片机,控制单片机编程器擦除、写入、读出、校验目标单片机ROM中的程序,以十六进制文件(.HEX文件)格式显示在控制界面内;单片机仿真实验系统能够把写入单片机的程序实时地运行,并呈现实际运行效果。单片机编程控制软件和单片机仿真实验板组成一个完整的单片机编程仿真实验系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值