gpt4 book ai didi

java - Queue接口(interface)的实现

转载 作者:行者123 更新时间:2023-11-30 08:23:52 26 4
gpt4 key购买 nike

<分区>

我无法理解泛型、接口(interface)和数组的细微差别以及如何将它们一起使用。我有一个中级 Java 类的作业。赋值如下:

  • 创建一个实现 Queue 的通用类 SimpleQueue
  • 使用构造函数初始化具有 5 个槽的数组。
  • 不允许使用 ArrayList
  • 如果数组被填满,我们必须能够增加数组的大小

我遇到的问题是数组的初始化。这是我的代码:

import java.util.Collection;
import java.util.Iterator;
import java.util.Queue;

public class SimpleQueue<E> implements Queue<E>{

private E myQueue[];

//Constructor with no arguments.
public SimpleQueue() {
myQueue = new [5];
System.out.println("A queue with length " + myQueue.length + " was created.");
}
}

Eclipse 提示说我们不能创建通用数组。我已经设法通过这样做让它工作:

private Object myQueue[] = Object[5];

...但我觉得这违背了使用泛型的目的。我误解了泛型的使用吗?不胜感激!

这是我在工作时用来测试泛型类的代码:

public class SimpleQueueTester {

public static void main(String [] args) {
SimpleQueue<String> myStringQueue = new SimpleQueue<>();
SimpleQueue<Integer> myIntegerQueue = new SimpleQueue<>();
}
}

免责声明:请不要认为我希望我的家庭作业替我完成。我只是停留在这一点上,我认为这是最好的询问地点。谢谢!

编辑:我采纳了您的一些建议,现在我的代码如下所示:

public class SimpleQueue<E> implements Queue<E>{

private E[] myQueue;

@SuppressWarnings("unchecked")
//Constructor with no arguments.
public SimpleQueue() {

//This was changed. What does (E[]) do exactly?
this.myQueue = (E[]) new Object[5];
System.out.println("A queue with length " + this.myQueue.length + " was created.");
}
}

谢谢你的建议!你们真棒。

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