gpt4 book ai didi

java - 如何将数组列表左移 2 个位置?

转载 作者:行者123 更新时间:2023-11-30 01:53:45 26 4
gpt4 key购买 nike

例如,有一个数组列表:40 8 6 3 7 5 2,我想将它们左移2位。然后预期输出是 6 3 7 5 2。我编写了以下代码,但它没有生成任何内容

代码: 导入java.util.ArrayList;

class ArrayLinearListRev extends ArrayLinearList{
public ArrayList<Integer> leftSh(int post, ArrayList<Integer>
alist2)
{
ArrayList<Integer> LeftshifedList = new ArrayList<Integer
();
for (int i = alist2.size(); i <= post; i++)
{
LeftshifedList.remove(alist2.get(i));
}

return LeftshifedList;

}

public void printElements(ArrayList<Integer> alist2)
{
for (int i = 0; i < alist2.size(); i++) {
System.out.print(alist2.get(i) + " ");
}
}
}

public class ArrayLinearListFun {
public static void main(String[] args)
{
ArrayLinearListRev obj = new ArrayLinearListRev();
ArrayList<Integer> x = new ArrayList<Integer>();
x.add(0, new Integer(2));
x.add(1, new Integer(5));
x.add(2, new Integer(7));
x.add(3, new Integer(3));
x.add(4, new Integer(6));
x.add(5, new Integer(8));
x.add(6, new Integer(40));
System.out.print("The list is: ");
obj.printElements(x);
x=obj.leftSh(2, x);
System.out.print("\nThe list is: ");
obj.printElements(x);
}
}

最佳答案

您的leftSh方法返回一个空的List。假设您不希望您的方法修改原始 List,则应将 LeftshifedList 初始化为原始 List 的副本。

您只需删除索引 0 处的元素并重复 post 次即可。

public ArrayList<Integer> leftSh(int post, ArrayList<Integer> alist2)
{
ArrayList<Integer> LeftshifedList = new ArrayList<>(alist2); // create a copy of input List
for (int i = 1; i <= post; i++) { // remove the first post elements
LeftshifedList.remove(0);
}
return LeftshifedList;
}

关于java - 如何将数组列表左移 2 个位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55177727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com