내 문제는, 내가이 코드를 출력 할 때, 내가 원하는 것을 출력하지 않고 "all"을 제거하는 것입니다. 첫 번째 print 서술문과 똑같은 것을 출력합니다.내 프로그램이 "모두"를 삭제하지 않는 이유는 무엇입니까?
// RemoveAll
// Spec: To remove the "all"
// ArrayList remove() exercise
import java.util.ArrayList;
public class RemoveAll
{
public static void main(String args[])
{
ArrayList<String> ray;
ray = new ArrayList<String>();
int spot = ray.size() - 1;
ray.add("all");
ray.add("all");
ray.add("fun");
ray.add("dog");
ray.add("bat");
ray.add("cat");
ray.add("all");
ray.add("dog");
ray.add("all");
ray.add("all");
System.out.println(ray);
System.out.println(ray.size());
// add in a loop to remove all occurrences of all
while (spot >= 0)
{
if (ray.get(spot).equalsIgnoreCase("all"))
{
ray.remove(spot);
}
spot = spot - 1;
}
System.out.println("\n" + ray);
System.out.println(ray.size());
}
}
어떤 아이디어 :
여기 내 코드입니까? 당신은 목록 작성 일단이 후 넣어 목록
을 채우기 전에 size()
을 결정하는
"spot"값을 배열 크기로 설정 한 다음 추가하고 다시 설정하지 않고 spot을 사용합니다. 또한, 배열을 반복하면서 remove()를 사용하여 배열을 변형하면 더욱 악화됩니다. –
정말 고마워요! 오류가 수정되었습니다! – Samkough