交换列表的元素

Jit*_*yay 3 java

我有一个对象列表,并且我想对列表进行一些操作,使得特定对象应该移动到列表位置0并且位置0处的对象将发生移位对象.图如下所示.

在此输入图像描述

清单如下

final List<Object> list= new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)

目前我已经制作了两个临时名单

final List<Object> temp1= new ArrayList<Object>();
    final List<Object> temp2= new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)

我正在运行一个循环,并在特定条件下将对象添加到temp1,否则添加到temp2,如下所示:

for (int i = 0; i < 5; i++) {

                if (i==3) {

                    temp1.add(i);

                } else {
                    temp2.add(i);
                }
            }
Run Code Online (Sandbox Code Playgroud)

最后做

list.addAll(temp1);
            list.addAll(temp2);
Run Code Online (Sandbox Code Playgroud)

如何在冗余和有效的步骤中执行相同的逻辑,而不是使用临时列表.

wes*_*ton 11

使用此交换方法:

Collections.swap(List<?> list, int i, int j);
Run Code Online (Sandbox Code Playgroud)


Bra*_*orm 6

试试这段代码:

Object temp = list.get(0);
list.set(0, list.get(3));
list.set(3, temp);
Run Code Online (Sandbox Code Playgroud)

  • 如果你看一下Collections类中的swap方法,它就会做同样的事情.temp对象不是必需的,你可以将它表示为一行:`list.set(0,list.set(3,list.get(0)));`.set方法返回旧值,这有助于进行交换... (2认同)