我在编译代码时收到此错误。
我不知道要解决什么。我应该删除一个吗?我想使用这些语句来打印我的输出,如果我只保留一个,它只能打印出相反的部分
代码:
import java.util.ArrayList;
class ArrayLinearListRev extends ArrayLinearList{
public ArrayList<Integer> reverse(ArrayList<Integer>
alist)
{
ArrayList<Integer> revArrayList = new
ArrayList<Integer>();
for (int i = alist.size() - 1; i >= 0; i --
) {
revArrayList.add(alist.get(i));
}
return revArrayList;
}
public void printElements(ArrayList<Integer>
alist)
{
for (int i = 0; i < alist.size(); i++) {
System.out.print(alist.get(i) + " ");
}
}
public ArrayList<Integer> leftSh(int post,
ArrayList<Integer> alist2)
{
ArrayList<Integer> LeftshifedList = new
ArrayList<Integer>(alist2);
for (int i = 1; i <= post; i++)
{
LeftshifedList.remove(0);
}
return LeftshifedList;
}
public void printElements(ArrayList<Integer> alist2)
{
for (int i = 0; i < alist2.size(); i++) {
System.out.print(alist2.get(i) + " ");
}
}
}
答案 0 :(得分:0)
那么您不能同时使用两种打印方法来具有相同的签名。 您需要使用不同的名称,最好是描述性的名称。
在此类中,您的打印方法相同。 当我从您的示例中提取这些方法并添加一些样式时,很明显,这些方法完全相同。
public void printElements(ArrayList<Integer> alist) {
for (int i = 0; i < alist.size(); i++) {
System.out.print(alist.get(i) + " ");
}
}
public void printElements(ArrayList<Integer> alist2) {
for (int i = 0; i < alist2.size(); i++) {
System.out.print(alist2.get(i) + " ");
}
}
因此您可以删除这些方法之一。然后,您可以使用相同的方法同时打印反转数组和移位数组:
public void printElements(ArrayList<Integer> list) {
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + " ");
}
}
并使用
public static void main(String[] args) {
ArrayList<Integer> myList = new ArrayList<Integer>();
ArrayLinearListRev allr = new ArrayLinearListRev();
myList = allr.reverse(myList);
allr.printElements(myList);
myList = allr.leftSh(2, myList);
allr.printElements(myList);
}