【发布时间】:2020-11-20 12:42:51
【问题描述】:
我试图从 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--;
}
}
感谢您的帮助!
【问题讨论】:
-
for (int i = 0; i < 3; i++) { list.add(list.remove(0)); } -
谢谢你,Johny,它成功了 :)
-
@JohnnyMopp 这应该是一个答案! :)
-
Collections.rotate(list, -3);
标签: java for-loop arraylist java-8