队列不接受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()不起作用。虽然您可以创建实例并访问成员,但这不是正确的方法。为什么要将坏习惯传递给正在学习的人呢?您也可以编译具有无限循环和内存泄漏的代码