Android: ArrayList Move Item to Position 0

后端 未结 4 1235
闹比i
闹比i 2021-01-01 01:49

I have an ArrayList and I need to make sure a specific item is at the 0 position and if it is not, I need to move it there. The item has an isStartIte

相关标签:
4条回答
  • 2021-01-01 02:36

    You can use the set function of Arraylist.

    set(position,object)
    
    0 讨论(0)
  • 2021-01-01 02:37

    I don't know what Collection.swap is, but this code should work:

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

    Or you can do it long-hand:

    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;
        }
    }
    
    0 讨论(0)
  • 2021-01-01 02:39

    You need to use Collections class's swap method. Collections, with an s at the end.

    Change -

    Collection.swap(myArray, i, 0);
    

    to this -

    Collections.swap(myArray, i, 0);
    

    Take a look at this example.

    Collection and Collections are two different things in Java. The first one is an interface, the second one is a class. The later one has a static swap method, but the former one doesn't.

    0 讨论(0)
  • 2021-01-01 02:41

    There are 2 ways of moving an item to the desired position in the ArrayList.

    1. Swap the items

    Collections.swap(myArray, i, 0);

    --> Here position "i" will be moved to 0th position and all the other items in between this range will remain as it is.

    2. Shift the items

    myArray.add(0,myArray.remove(i))

    --> Here item at position "i" will be removed and added to the 0th position. Here all the other items position will be shifted as you're adding a new item at 0.

    Hope this will helps you to understand the difference between swap and shift the position. Use the solution according to your requirement.

    0 讨论(0)
提交回复
热议问题