내 Android 앱 Java 코드에 ArrayList
의 맞춤 데이터 유형이 있습니다. ArrayList.remove(location)
위의 위치에있는 모든 항목을 수행 할 때 내가 알고있는 것에서부터 ArrayLists
에 대해 하나씩 이동합니다. 하지만 어떤 이유로 배열의 선택된 항목을 제거하기 위해 배열의 끝에서부터 시작까지 반복 할 때마다 그 아래의 모든 항목이 제거되고 상위 항목이 정상적으로 작동하는 대신 하나 위로 이동합니다 하나가 내려 갔다. 따라서 배열 중간에서 첫 번째 항목을 제거하면 0의 항목이 1로 이동하고 0이 null이됩니다. 특히 내가 할 수있는 일이나 이것이 일어날 수있는 어떤 상황이 있습니까?ArrayList에서 항목을 제거 할 때 예기치 않은 동작이 발생했습니다.
정확하게 내가 무엇을하고 있었는지에 대해 사과드립니다. Im은 ArrayList를 반복하지 않습니다. 대신에 삭제해야 할 원래 목록에있는 모든 항목을 포함하는 다른 목록이 있습니다. 두 번째 목록에서 Collections.sort를 수행하고 두 번째 목록에서 시작하여 각 반복마다 ArrayList.remove를 수행하고 첫 번째 목록을 두 번째 목록에서 읽은 위치와 함께 수행합니다. 따라서 제거는 가장 높은 위치에서 가장 낮은 위치로 이동하지만 각 제거에서 더 낮은 항목이 발생하는 것을 방지합니다. 하지만 내가보고있는 것은 제거 된 항목보다 낮은 항목들이 모두 간격을 채우기 위해 위로 이동하는 것입니다. 왜 이런 일이 일어 났습니까?
이러한 상황은 안드로이드에만있는 것이 아니라 일반적으로 자바에 적용됩니다. – Bernard
코드를 표시하십시오. 당신이하는 일을 묘사하는 것보다 더 분명합니다. 그리고 코드가 더 중요한 것은 할 일을하지 않을 수도 있습니다. –
@FabianBarney : 귀하가 질문을 끝내기 위해 투표 할 때 자동으로 생성되는 의견입니다. 나는 그것을 쓰지 않았다, 정직한 guv! –