1.迭代器 interator
【基础】
功能比较简单,并且只能单向移动
包含hasnext、next、remove 三个方法
- hasnext:检查序列中是否还有元素
- next:取得当前值,并指向下一个值
- remove:将新返回元素删除,请注意:由于是删除新返回元素,所以要删除第一个元素时,必须先next,否则会报错
在要删除元素时,不要使用原集合进行删除,而是使用迭代器删除!
个人理解,迭代器像指针这个指针已经连接在这个集合上了,再更改就打乱排序了,所以不可以!
【题】
1.list 是一个 ArrayList 的对象,哪个选项的代码填到 //todo delete 处,可以在 Iterator 遍历的过程中正确并安全的删除一个 list 中保存的对象
Iterator it = list.iterator();
int index = 0;
while (it.hasNext())
{
Object obj = it.next();
if (needDelete(obj)) //needDelete返回boolean,决定是否要删除
{
//todo delete
}
index ++;
}
答案:it.remove();
注意不能选list.remove();
原因你猜:-)
【参考连接】
https://blog.youkuaiyun.com/qq_33945246/article/details/91040517
https://blog.youkuaiyun.com/Jae_Wang/article/details/80526216
2.hashmap
知识点居多,先留个坑以后再填