처리 할 때 배열에서 객체를 제거하는 가장 좋은 방법

StackOverflow https://stackoverflow.com/questions/2459780

  •  20-09-2019
  •  | 
  •  

문제

나는 처리가 가졌기를 정말로 원한다 푸시 그리고 배열 작업을위한 방법이지만, 배열의 특정 위치에서 객체를 제거하는 가장 좋은 방법을 찾으려고 노력하지 않기 때문입니다. 나는 이것이 많은 사람들에게 얻는 것만 큼 기본적이라고 확신하지만, 도움을 줄 수 있었고, 프로세싱 참조를 탐색하여 많은 것을 알아낼 수 없었습니다.

나는 그것이 중요하다고 생각하지 않지만 여기에 당신의 참조를 위해 여기에 처음에 개체를 추가하는 데 사용한 코드가 다음과 같습니다.

Flower[] flowers = new Flower[0];

for (int i=0; i < 20; i++)
{
    Flower fl = new Flower();
    flowers = (Flower[]) expand(flowers, flowers.length + 1);
    flowers[flowers.length - 1] = fl;
}

이 질문을 위해, 15에서 물체를 제거하고 싶다고 가정 해 봅시다. 감사합니다.

도움이 되었습니까?

해결책

가장 좋은 방법은 Arraycopy를 사용하는 것입니다. SRC 및 Dest에 동일한 배열을 사용할 수 있습니다. 다음과 같은 것 (테스트되지 않은) :

// move the end elements down 1
arraycopy(flowers, 16, flowers, 15, flowers.length-16);
// remove the extra copy of the last element
flowers = shorten(flowers);

다른 팁

사용을 고려할 수도 있습니다 배열 목록 일반 배열보다 더 많은 방법이 있습니다.

사용하여 15 번째 요소를 제거 할 수 있습니다 myArrayList.remove(14)

나는이 질문이 오래 전에 묻는 것을 알고 있지만 많은 사람들이 여전히 답을 찾고있는 것 같습니다. 방금 이것을 썼습니다. 나는 그것을 몇 가지 방법으로 테스트했으며 원하는 방식으로 실행되는 것 같습니다.

var yourArr = [1, 2, 3, 4];                                // use your array here
var removeIndex = 1;                                       // item to get rid of 

var explode = function(array, index) {                     // create the function
    var frontSet = subset(array, 0, index - 1);            // get the front
    var endSet = subset(array, index , array.length - 1);  // get the end
    yourArr = concat(frontSet, endSet);                    // join them
};

explode(yourArr, removeIndex);                             // call it on your array

그것은 한 가지 방법입니다. 배열을 통과 할 수 있다고 생각합니다. ... 같은 ...

var yourArr = [1, 2, 3, 4];
var removeIndex = 2;
var newArr = [];

for(var i = 0; i < yourArr.length; i++) {
    if(i < removeIndex) {
        append(newArr, yourArr[i]);
    } else if(i > removeIndex) {
        append(newArr, yourArr[i]);
    }
}

yourArr = newArr;

... 그것이 효과가 있다고 생각하십시오. 이것이 필요한 사람이라면 누구나 도움이되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top