Java个人学习总结——对象集合部分

一、有关元素遍历时的删除和插入

1、foreach遍历循环的本质是使用iterator进行遍历,注意集合遍历时不要一边遍历一边删除,不能用集合的remove方法进行元素的删除,需要直接用iterator的remove方法进行删除,错误示例如下:

Iterator<String> it = books.iterator();//iterator作为遍历集合的方法
	    while(it.hasNext())
		{
			String book = (String)it.next();
			System.out.println(book);
			//note: 如果删除"Two book",本示例不会引发异常,请通过查询源码解释这一现象
			if (book.equals("One book"))
			{
				//使用Iterator迭代过程中,不可修改集合元素!
				books.remove(book);
			}
			//使用迭代器的方法在遍历的过程中修改元素,不是直接删除元素
		}

此时会抛出异常,如果利用如下示例的方法:

		for (String book : books) {
			
			if (book.equals("Two book"))
			{
				//使用Iterator迭代过程中,不可修改集合元素!
				books.remove(book);
			}
		}

可以看出,foreach遍历的方法本质便是调用iterator的remove方法,利用iterator方法时,每进行一次删除或插入的操作,会check修改的次数,并且自动同步光标,所以不会出现光标超出集合元素的问题

注意不论是什么集合都不能用集合的remove方法一边遍历一边删除

2、数据结构知识点总结

1、注意区别ArrayList和Arrays内部的ArrayList,后者只能遍历和访问,不能向其添加后者删除元素,ArrayList时不同的数据结构

2、map中对于key必须覆盖hashcode和equals方法

3、Navigable Map接口保证了在遍历元素时按照升序的顺序进行

4、TreeMap特点,内部基于红黑树进行实现,对相应的key值进行排序,注意具有一定顺序的特点

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值