删除ArrayList的元素并放在列表的末尾

时间:2020-07-30 17:58:32

标签: java for-loop arraylist java-8

我试图从ArrayList中删除三个元素,并将它们放在结尾。

我想要这个输出:

d
e
f
a
b
c

这是我的代码:

ArrayList<String> list = new ArrayList<String>();

list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
list.add("f");

for (int i = 0; i < list.size(); i++) {

    String a = list.get(i);
        
    if (i < 3) {
        list.remove(i);
        list.add(list.size(), a);
    }
}

输出为:

b
d
f
a
c
e

如果我这样做:

for (int i = list.size()-1; i >=0 ; i--) {
        
    String a = list.get(i);
                
    if (i < 3) {
        list.remove(a);
        list.add(list.size(), a);
    } 
}

输出为:

d
e
f
c
b
a

我通常理解为什么会得到这些结果,但是我不知道如何解决。

我尝试过,但是没用:

for (int i = 0; i < list.size(); i++) {

    String a = list.get(i);

    if (i < 3) {
        list.remove(i);
        list.add(list.size(), a);
        i--;
    }
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

ArrayList<String> list = new ArrayList<String>();
int remove = 3; /* number of elements to remove */

list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
list.add("f");

for (int i = 0; i < remove; i++) {
  list.add(list.remove(0));
}
/* print */
System.out.println(Arrays.toString(list.toArray()));
相关问题