java - 无法理解remove()函数

标签 java queue

我得到了这个类(class),但我不明白删除功能是如何工作的。为什么在 remove() 之前需要是类名 (Customer),它的含义是什么 Customer customer = (Customer)customers.firstElement();

你能帮我吗?

private java.util.Vector customers = new java.util.Vector();
Server server;

void insert(AbstractEvent customer){
    customers.addElement(customer);
}
/**
 * @return the first customer in the queue
 */
Customer remove() {
    Customer customer = (Customer) customers.firstElement();
    customers.removeElementAt(0);
          return customer;
}
int size() {
    return customers.size();
}

最佳答案

Customer remove()

remove() 方法返回一个 Customer 类型的对象。这就是 remove() 之前的类名的含义。

Customer customer = (Customer) customers.firstElement();

customers.firstElement() 返回 customers 变量引用的 Vector 对象的第一个元素。由于 customers 的类型是原始类型(即它不指定 Vector 中存储的元素类型),因此 firstElement()返回 Object 类型的对象,该对象必须转换为 Customer 类型才能分配给 Customer 变量。

更换

private java.util.Vector customers = new java.util.Vector();

private java.util.Vector<Customer> customers = new java.util.Vector<>();

将允许简单地分配 Vector 的第一个元素而不进行强制转换:

Customer customer = customers.firstElement();

关于java - 无法理解remove()函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41987900/

相关文章:

java - 使用现有声音输入在Java中为Windows创建麦克风

java - 安卓测试崩溃

iphone - AudioQueueStart 报告不支持的格式

c - C中使用队列和邻接表实现BFS

java - 从数组列表中删除某些值

java - 如果数据库已经提供缓存,为什么还要使用应用程序级缓存?

java.awt.Graphics ->graphics.drawImage 太慢,出了什么问题?

c++ - 在 STL 列表中找到一对,其中只有第一个元素是已知的

java - 我的线程不适用于我的队列

php - 用于大规模任务调度的可扩展作业队列系统