重点说list和ListIterator的特点:

import java.util.*;
class Demo
{
	public static void main(String[] args)
	{
		ArrayList a1 = new ArrayList(); //建立一个集合

		//添加元素
		a1.add("01");
		a1.add("02");
		a1.add("03");    //这些是元素的引用放到了集合当中,用集合填加这没什么问题


		//当我们来个a1.iterator()的时候,我们就把元素的引用防到了迭代器里面了.
		/* 现在能操作元素的方式有2种了,要么用集合的方式操作,要么用迭代器的方式操作
			这2种操作方式操作的是同一种元素,
			it.next();迭代器正在操作取出操作的过程中.你又用到了集合al.add操作方法操作
			就行成了同时病发,出现安全隐患.
			不同做的是: 对同一组元素进行多种同时操作.
		*/

		//在迭代器过程中,准备添加或者删除元素
		Iterator it = a1.iterator();
		
		while (it.hasNext())
		{
			Object obj=it.next();  //我取到02,obj指向02,
			if(obj.equals("02"))    //判断条件满足 
				//al.add(""02"");
			    it.remove();  //这句话的意思是 遍历到不要让努力白废的时候,就把这句话的引用从集合中干掉. 但这个元素的引用还在内存当中,元素还在被obj使用
				                  
			
			sop("obj="+obj);  //打印元素都还在.
		}
		sop(a1);   //集合中就少了02 
	}
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}




/*
迭代器 只有3钟方法:
方法摘要 
 boolean hasNext() 
          如果仍有元素可以迭代,则返回 true。 
 E next() 
          返回迭代的下一个元素。 
 void remove() 
          从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。 

只有 3种方法没有添加怎么办呢.


java.util 
接口 Iterator<E> 
                        这个哥们提供了小弟
所有已知子接口: 
ListIterator<E>, (列表迭代器)


小弟继承了Iterator
public interface ListIterator<E>extends Iterator<E>


列表迭代器继承着迭代器,,,而列表迭代器因为他里面有指针,角标.
                它的方法 要比他爹的方法多的多.
*/

list 的ListIterator出现以后,可以在遍历的过程中,增删改查!

 

import java.util.*;

class Demo
{
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}

	public static void main(String[] args)
	{
		//建立一个集合
		ArrayList a1 = new ArrayList();

		//填加元素
		a1.add("努力01");
		a1.add("努力02");
		a1.add("努力03");

		sop(a1);

		//演示列表迭代器
		ListIterator li =new ListIterator();

		while (li.hasNext()) //如果仍有元素可以迭代
		{
			Object obj = li.next();  //返回迭代的下一个元素
			if(obj.equals("努力02"));//指定的对象与列表是否相等.
				li.set("努力08");//用指定元素替换列表中指定位置元素
		}
	}
}


 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值