Tag Archives: 삭제

[Java] 리스트 순환중에 특정 객체 삭제하기

[code]List<String> list = new ArrayList<String>();

list.add(“AAAA”);
list.add(“BBBB”);
list.add(“CCCC”);
list.add(“DDDD”);
list.add(“EEEE”);
list.add(“FFFF”);
list.add(“GGGG”);

for(String value : list)
{
if(value.startsWith(“D”))
{
list.remove(value);
}
}

System.out.println(“Result: ” + list);[/code]
위와 같은 소스코드가 있다고 가정을 해보겠습니다. 위의 코드는 단순히 리스트 전체를 순환중에  값이 D로  시작하는 경우 그 객체(현재 순환중인 자기자신)를 삭제하고자 하는 의도를 가지고 있는 코드입니다.

하지만 위의 코드는 다음과 같은 오류를 만나게 됩니다.
[code]Exception in thread “main” java.util.ConcurrentModificationException
  at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
  at java.util.AbstractList$Itr.next(Unknown Source)
  at RemoveInLoop.main(RemoveInLoop.java:20)[/code]
기본적으로 리스트는 순환중에 리스트의 추가, 삭제, 변경등 자기 자신을 수정할 수 없게 되어있습니다. 하지만 다음과 같이 Iterator를 활용하면 가능합니다.
[code]List<String> list = new ArrayList<String>();

list.add(“AAAA”);
list.add(“BBBB”);
list.add(“CCCC”);
list.add(“DDDD”);
list.add(“EEEE”);
list.add(“FFFF”);
list.add(“GGGG”);

for(Iterator<String> it = list.iterator() ; it.hasNext() ; )
{
String value = it.next();

if(value.startsWith(“C”))
{
it.remove();
}
}

System.out.println(“Result: ” + list);[/code]
이번에는 C로 시작하는 값을 지워보려는 목적으로 가지고 실행을 해보았습니다. 오류 없이 다음과 같은 결과를 보여줍니다.
[code]Result: [AAAA, BBBB, DDDD, EEEE, FFFF, GGGG][/code]
1222115436.zip

[iPhone/XCode] iPhone SDK 및 개발툴 완벽 삭제하기

iPhone SDK를 사용하면서 이상한 버그의 벽에 막히게 되면 도전해볼만한 SDK 재설치 방법입니다. 다른건 없고 다음의 명령을 이용하여 SDK를 완전히 삭제하시고 SDK를 재설치 하시면 됩니다. 이 명령은 모든 라이브러리와 Xcode 및 iPhone SDK를 제거합니다.

[code]sudo /Developer/Library/uninstall-devtools –mode=all
sudo rm -rf /Developer/*[/code]