问题不是出在那里,内循环完成一次后,A迭代器已经读到末尾了,当外循环第二次读到内循环时,itA.hasNext()返回的已经是false了,就不再读里边的代码了,这个代码是不用每次都new一个ArrayList的- import java.util.*;
- class Demo
- {
- public static void main(String[] args)
- {
- ArrayList<String> listA = new ArrayList<String>();
- ArrayList<String> listB = new ArrayList<String>();
- listB.add("20089087");
- listB.add("20081234");
- listB.add("20200801");
- listB.add("20071555");
- ListIterator<String> itB = listB.listIterator();
- while(itB.hasNext())
- {
- listA.clear();
- listA.add("2008");
- listA.add("2007");
- ListIterator<String> itA = listA.listIterator();
- String B= itB.next();
- while(itA.hasNext())
- {
- if(B.startsWith(itA.next()))
- {
- System.out.println(B);
- }
- }
-
- }
- }
- }
复制代码 |