Android:ArrayList将项目移动到位置0

rya*_*dlf 5 collections android swap arraylist

我有一个ArrayList,我需要确保一个特定的项目在0位置,如果不是,我需要将它移动到那里.该项目上有一个isStartItem布尔值,所以我可以很容易地找到我需要在0位置的特定项目,但是如何将其移动到正确的位置呢?

我假设我需要使用这样的东西:

for(int i=0; i<myArray.size(); i++){    
    if(myArray.get(i).isStartItem()){
        Collection.swap(myArray, i, 0);
    }
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用......

MD *_*med 18

你需要使用Collections类的swap方法.Collections,s最后一个.

改变 -

Collection.swap(myArray, i, 0);
Run Code Online (Sandbox Code Playgroud)

对此 -

Collections.swap(myArray, i, 0);
Run Code Online (Sandbox Code Playgroud)

看看这个例子.

集合集合是Java中的两个不同的东西.第一个是接口,第二个是类.后者有一个静态交换方法,但前者没有.


Ted*_*opp 5

我不知道是什么Collection.swap,但这段代码应该有效:

for(int i=0; i<myArray.size(); i++){    
    if(myArray.get(i).isStartItem()){
        Collections.swap(myArray, i, 0);
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

或者你可以长期做到:

for(int i=0; i<myArray.size(); i++){    
    if(myArray.get(i).isStartItem()){
        Object thing = myArray.remove(i); // or whatever type is appropriate
        myArray.add(0, thing);
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)