【问题标题】:Removing elements of ArrayList and put at the end of the list删除 ArrayList 的元素并放在列表的末尾
【发布时间】: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--;
    }
}

感谢您的帮助!

【问题讨论】:

  • 这看起来像 Java。您应该edit 并添加java 标签。此外,代码 sn-p 功能适用于 Javascript。
  • for (int i = 0; i &lt; 3; i++) { list.add(list.remove(0)); }
  • 谢谢你,Johny,它成功了 :)
  • @JohnnyMopp 这应该是一个答案! :)
  • Collections.rotate(list, -3);

标签: java for-loop arraylist java-8


【解决方案1】:
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()));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 2020-07-28
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    相关资源
    最近更新 更多