集合浅谈(2)

1.在List和Set接口中,他们都有一个add()方法,但是对于去这两个方法其里面的写法是有区别的。对于List来说,它的add()方法返回值一定是真,而对于Set来说,它的返回值就不一定是真的。这就是这两个接口的区别。因为List接口是允许存储相同元素的,而Set接口是不允许存储相同元素的。

2.java中的集合经常会出现的一个问题是并发修改异常,这个意思指的是不允许在使用iterator在对集合迭代过程中对集合的长度进行修改,但是Listiterator对集合迭代的过程中就可以对集合的长度进行修改。

public static void listdemo(){
		LinkedList<String> link=new LinkedList<String>();
		link.add("abc");
		link.add("bcd");
		link.add("cde");
				
		Iterator<String> it=link.iterator();
		while(it.hasNext()){
			String s=it.next();
        //以下代码就是在用iterator对集合迭代时修改集合的长度
        //这是错误的!!!!!
                      /*
			if(s.equals("abc")){
				link.add("JAVA");
			}
                      */
			System.out.println(s);
		}
		System.out.println("======================");
        //以下是利用Listitrator对集合进行迭代时修改集合的长度,这是可以的
		ListIterator<String> lit=link.listIterator();
		while(lit.hasNext()){
			String s=lit.next();
			if(s.equals("abc")){
                              //lit.set("JAVA");这是对集合当前索引位置上的元素修改
				lit.add("HELLO");
			}
			System.out.println(s);
		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值