for(int i=0; i<phoneinfo.length; i++)
{
if(phoneinfo[i].name.equals(name))
{
phoneinfo[i] = phoneinfo[i+1];
phoneinfo[i+1]=null;
}
break;
}
배열에 들어있는 정보 이름으로 검색해서 삭제하고 한 칸씩 앞으로 땡기는 건데여!
i가 0일 때는 잘 지워지는데 인덱스값이 중간에 끼어있으면 삭제가 안됨니다!
머가 문제져!
for(int i=0; i<phoneinfo.length; i++)
{
if(phoneinfo[i].name.equals(name))
{
phoneinfo[i] = phoneinfo[i+1];
phoneinfo[i+1]=null;
}
break;
}
배열에 들어있는 정보 이름으로 검색해서 삭제하고 한 칸씩 앞으로 땡기는 건데여!
i가 0일 때는 잘 지워지는데 인덱스값이 중간에 끼어있으면 삭제가 안됨니다!
머가 문제져!
break는 왜 넣으신?
몰겠음! 저거 안 하면 에러남!
...
널포인터 익셉션 떠서여 ㅠㅠ
저거 안 넣으면 널포인트라고 나올 듯
넹 마즘 이제 제 문제를 해결해주세여
배열의 원소에 null을 넣는다고 그 index가 지워지는 게 아니에여 그냥 거기에 값이 null이 되는 거임
i에 i+1을 땡겨넣고 i+1에는 null을 넣어버렸으니 null에다가 equals를 쓰려고 하니 그러는 것
헉 천재
근데 왜 null을 넣었냐면여 안 하면 또 널포인터 익셉션 떠서
애초에 Array 를 가지고 저렇게 할 수 있질 않아요.
매번 새로운 배열을 만들어 작업을 하시든가 Vector 혹은 ArrayList를 쓰셔야 할 것
음 그렇구낭 리스트를 써야겠어여 그냥
큰일나씀 ArrayList 써도 인덱스 중간에 껴있으면 삭제가 안대욤.. 조건값 설정이 잘못됐낭
그 경우에는 ArrayList에서 index 하나를 remove 해 주시고요 그런 다음에 loop 의 index인 i값을 하나씩 보정해주세요
저는 정말 왕왕멍청한가바요 어레이리스트는 break; 빼니깐 제대로 작동하네여
처음엔 누구나 다 그래요
헉 멋져
상냥해!