ListIterator逆向遍历需要先正向遍历
list集合中部分方法执行完有返回值
/*我有一个集合:List<String> list = new ArrayList<String>();
里面有三个元素list.add("hello");list.add("world");list.add("java");
我想判断里面有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现。
ConcurrentModificationException:当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。
产生的原因:
迭代器依赖于集合而存在,在判断成功后,集合中添加了新的元素,而迭代器并不知道,所有就报错了。
其实这个问题说的是:迭代器遍历集合中的元素的时候,不要使用集合对象去修改集合中的元素。
如何解决呢?
A:迭代器遍历的时候,我可以通过迭代器修改集合中的元素
元素是跟在刚才迭代的元素后面的
B:集合遍历的时候,我可以通过集合对象修改集合中的元素
元素是在最后添加的
*/
ListIterator<String> listIterator = list.listIterator();
while (listIterator.hasNext()) {
String string = (String) listIterator.next();
if(string.equals("world"))
listIterator.add("javaee");
}
System.out.println(list);
断点调试
01_断点调试的作用及步骤.
断点调试作用
A:查看程序的执行流程
B:调试程序
如何加呢?
在代码区域的最左边双击即可(或者右键 选择 toggle BreakPoint)
如何运行加断点的程序呢?
代码区域 -- 右键 -- Debug as -- Java Application
会弹出一个页面让我们选择是否进入debug模式,选择yes。
如何让程序往下执行呢?
Step Over 执行下一步 (F6)
F8:跳过当前断点,直接到下一断点
step into 跳进方法里面(F5)
step return 跳出方法里面(F7)
看那些区域呢?
代码区域:看程序的执行步骤
Debug区域:看程序的执行步骤
Variables:看变量的创建,赋值,销毁等
Console:看程序的输入和输出
如何去除断点:
A:把加断点的动作再来一遍
B:在debug视图中,找到Breakpoints,选中断点,点击双x即可
结束断点调试的步骤
1,首先停掉调试程序
2,然后移除所有的断点
3,最后切换到java视图