안드로이드
java.util.concurrentmodificationexception arraylist
raulyo
2012. 3. 20. 15:41
아래 코드에서 에러
import java.util.ArrayList;
import java.util.List;
public class TestAddRemoveList
{
public static void main( String args[] )
{
List< String > list = new ArrayList< String >();
list.add("A");
list.add("B");
for( String str : list )
{
if( str.equals( "B" ) )
{
list.remove( new String("B" ) );
}
}
}
}
첫번째 해결방법
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class TestAddRemoveList
{
public static void main( String args[] )
{
List< String > list = new CopyOnWriteArrayList< String >();
list.add("A");
list.add("B");
for( String str : list )
{
if( str.equals( "B" ) )
{
list.remove( new String("B" ) );
}
}
}
}
두번째 해결방법
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class TestAddRemoveList
{
public static void main( String args[] )
{
List< String > list = new ArrayList< String >();
list.add("A");
list.add("B");
list.add("C");
for( Iterator< String > it = list.iterator(); it.hasNext() ; )
{
String str = it.next();
if( str.equals( "B" ) )
{
it.remove();
}
}
for( String str : list )
{
System.out.println( str );
}
}
}
import java.util.ArrayList;
import java.util.List;
public class TestAddRemoveList
{
public static void main( String args[] )
{
List< String > list = new ArrayList< String >();
list.add("A");
list.add("B");
for( String str : list )
{
if( str.equals( "B" ) )
{
list.remove( new String("B" ) );
}
}
}
}
첫번째 해결방법
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class TestAddRemoveList
{
public static void main( String args[] )
{
List< String > list = new CopyOnWriteArrayList< String >();
list.add("A");
list.add("B");
for( String str : list )
{
if( str.equals( "B" ) )
{
list.remove( new String("B" ) );
}
}
}
}
두번째 해결방법
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class TestAddRemoveList
{
public static void main( String args[] )
{
List< String > list = new ArrayList< String >();
list.add("A");
list.add("B");
list.add("C");
for( Iterator< String > it = list.iterator(); it.hasNext() ; )
{
String str = it.next();
if( str.equals( "B" ) )
{
it.remove();
}
}
for( String str : list )
{
System.out.println( str );
}
}
}