编译器给出方法“已定义错误”-我该如何解决?

时间:2019-03-15 09:13:50

标签: java

我在编译代码时收到此错误。 Warning Message

我不知道要解决什么。我应该删除一个吗?我想使用这些语句来打印我的输出,如果我只保留一个,它只能打印出相反的部分

代码:

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) + " ");
        }
    }



    }

1 个答案:

答案 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);
}