java.util.List 真的会用么?看能作对否

java.util.List 真的会用么?看能作对否

public   class  DynamicRemove {
  
private  List < String >  generateList() {
  String[] figures 
=   new  String[]{ " 1 " " 2 " " 3 " " 4 " " 5 " " 6 " " 7 " " 8 " " 9 " };
  List
< String >  list  =   new  ArrayList < String > ();
    
for  (String figure : figures) 
      list.add(figure);
  
return  list;
}

public   void  test1() {
  List
< String >  loads  =  generateList();  
  
if  ( null   !=  loads  &&   ! loads.isEmpty()) {
    
for  (String load : loads) {
      System.out.println(load);            
      
if  (Integer.valueOf(load).intValue()  == 3 ){
        loads.remove(load);                        System.out.println(
" ==== "   +  loads.get( 2 ));
      }
    }
            
    System.out.println(
" size "   +  loads.size());    
  }
}
    
    
public   static   void  main(String[] args) {
  DynamicRemove test 
=   new  DynamicRemove();
  test.test1();
}

输出为:
你答对了么
[WARN ] Not using NPTL on a 2.6 kernel. This configuration is not supported.
Exception in thread 
"Main Thread" java.util.ConcurrentModificationException
    at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:
449)
    at java.util.AbstractList$Itr.next(AbstractList.java:
420)
    at dynamicrmobjwhilelisting.DynamicRemove.test1(DynamicRemove.java:
17)
    at dynamicrmobjwhilelisting.DynamicRemove.main(DynamicRemove.java:
35)
1
2
3
====4

这样呢?
嘿嘿,是这样么
public void test2() {
    List
<String> loads = generateList();  
    
if (null != loads && !loads.isEmpty()) {
        
for (int i = loads.size() - 1; i >= 0; i--) {
                System.out.println(loads.get(i));
         
if (Integer.valueOf(loads.get(i).toString()).intValue() == 3) {
                    loads.remove(i);
                    System.out.println(
"====" + loads.get(2));
                }
            }
            
            System.out.println(
"size" + loads.size());
        }
    }
输出呢?
答案
9
8
7
6
5
4
3
====4
2
1
size8


你可能感兴趣的:(java.util.List 真的会用么?看能作对否)