队列不接受java中的参数

队列不接受java中的参数,java,Java,我的代码有问题 我无法添加队列 当我尝试添加此代码时 Queue<Integer> myqu = new LinkedList<>(); for (int i = 0; i <= mySecondArray.length + 1; i++){ myqu.add(mySecondArray[i]); } import java.util.LinkedList; import java.util.Queue; import java.util.*

我的代码有问题 我无法添加队列

当我尝试添加此代码时

Queue<Integer> myqu = new LinkedList<>(); 
    for (int i = 0; i <= mySecondArray.length + 1; i++){
    myqu.add(mySecondArray[i]);
}
import java.util.LinkedList; 
import java.util.Queue; 
import java.util.*; 

class test{

static class Queue{  

    static Stack<Integer> s1 = new Stack<Integer>();  
Queue<Integer> myqu = new LinkedList<>(); 


    static int[] intArray = new int[]{ 1,2,3,4,5,6,7,8,9,10 }; 
    static int[] mySecondArray = new int[10];               

    static void enQueue(){

        for (int i = 0; i < intArray.length; i++){
             s1.push(intArray[i]);  
        }
        System.out.printf("\nBefore multiply operation\n");
        System.out.printf("%s \n",s1);

        System.out.printf("\nAfter multiply operation\n");
        Integer edit = s1.pop();
        System.out.printf("[");
        for (int i = 1; i <= s1.size() + 1; i++){
            mySecondArray[i] = i * 2;
            edit = Integer.valueOf(i) * 2;  
            System.out.printf("%s",edit);   
            System.out.printf(", ");            
        }
        System.out.printf("]");     

    for (int i = 0; i <= mySecondArray.length + 1; i++){
    myqu.add(mySecondArray[i]);
}
    }  

};  

public static void main(String[] args)  
{  
    Queue q = new Queue();  
    q.enQueue();  
}  
} 
Queue myqu=newlinkedlist();

对于(inti=0;i您之所以关注此问题,是因为您的类名和接口
Queue
名称相同

更改您的类名,此问题将通过以下方式解决:

static class SampleQueue{
  ..your code

}
并更改新名称的主要方法:

public static void main(String[] args)  
{  
    SampleQueue q = new SampleQueue();  
    q.enQueue();  
}

如果您试图使用java.util.Queue,为什么要创建自己的内部静态类Queue?重命名您的Queue类,它也声明为static,所以您不能用
new
实例化它 另外,您的
myqu
不是声明为静态的,因此您也需要解决这个问题,我在下面的代码中根据命名约定将其重命名为myQueue

public class test {

    static class QueueUtil {

        static Stack<Integer> s1   = new Stack<Integer>();
        static Queue<Integer> myQueue = new LinkedList<>();


        static int[] intArray      = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        static int[] mySecondArray = new int[10];

        static void enQueue() {

            for (int value : intArray) {
                s1.push(value);
            }
            System.out.print("\nBefore multiply operation\n");
            System.out.printf("%s \n", s1);

            System.out.print("\nAfter multiply operation\n");
            Integer edit = s1.pop();
            System.out.print("[");
            for (int i = 1; i <= s1.size() + 1; i++) {
                mySecondArray[i] = i * 2;
                edit             = i * 2;
                System.out.printf("%s", edit);
                System.out.print(", ");
            }
            System.out.print("]");

            for (int i = 0; i <= mySecondArray.length + 1; i++) {
                myQueue.add(mySecondArray[i]);
            }
        }
    }

    public static void main(String[] args) {
        QueueUtil.enQueue();
    }
}
公共类测试{
静态类QueueUtil{
静态堆栈s1=新堆栈();
静态队列myQueue=新建LinkedList();
静态int[]intArray=newint[]{1,2,3,4,5,6,7,8,9,10};
静态int[]mySecondArray=newint[10];
静态void排队(){
for(int值:intArray){
s1.推力(值);
}
System.out.print(“\n乘法操作前\n”);
System.out.printf(“%s\n”,s1);
System.out.print(“\n乘法运算后\n”);
整数编辑=s1.pop();
系统输出打印(“[”);

对于(int i=1;i您的
静态类队列
不是泛型类(它没有类型参数
),因此您不允许写入
队列
。相反,您必须写入
队列myqu=new Queue();
这仍然不起作用,因为SampleQueue是静态的,所以你不能使用
new
,它必须是
SampleQueue.enQueue();
这很好,你可以试试。有关更多详细信息,请参阅java文档中的静态类。Sumit,我的拼写错误,我的意思是OP的
myqu
是静态的。add()不起作用。虽然您可以创建实例并访问成员,但这不是正确的方法。为什么要将坏习惯传递给正在学习的人呢?您也可以编译具有无限循环和内存泄漏的代码