java - 从单个方法中创建和使用 ArrayList?

标签 java arraylist collections

是否可以在方法中创建和使用 ArrayList?我想在 public int min() 方法中创建一个临时堆栈来跟踪最小值。但是,编译器提示 ArrayList add() 方法:Cannot resolve method 'add(int)' 我想那是因为我试图在同一个创建 ArrayList 的方法?

import java.util.*;

public class MinStack {
private ArrayList<Integer> data;


public MinStack() {
    data = new ArrayList<Integer>();
}

public void push( int a ) {
    data.add( a );
}

public int pop() {
    if ( data.size() <= 0 ) {
        throw new IllegalStateException();
    }
    return data.remove( data.size() - 1 );
}

public int size() {
    return data.size();
}

public int min() {
    MinStack smalls = new MinStack();
    int elMin = (data.get((data.size() - 1)));
    smalls.add(elMin);
    while (!data.isEmpty()) {
        if (data.get(data.size() - 1) < elMin)
        elMin = data.get(data.size() - 1);
    }
    return elMin;
}

最佳答案

您不是在 Arraylist 的实例上调用 add 方法,而是在 MinStack 类对象的实例上调用它没有 add 方法。

您应该调用 push 方法,因为它在您的类中定义,它将调用 arraylist 的 add 方法。或者在 MinStack 类中使用名称 add

定义/重命名(推送)方法

关于java - 从单个方法中创建和使用 ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52069443/

相关文章:

java - 瑞典厨师翻译

swift - 如何在集合扩展中返回空子序列

java - 从子文件夹导入包: Exception in thread "main" java. lang.NoClassDefFoundError

java - 错误:"items"不支持c :forEach jsp中的运行时表达式

java - 添加存储在数组列表中的 double 值

collections - 在 Java 中将枚举转换为映射

java - Producer/Consumer——生产者无阻塞地向集合中添加数据,消费者批量消费集合中的数据

java - 使用onetomany连接更新实体,而子实体中没有id

java - IntelliJ 添加持久性支持

Java ArrayList 抛出 IndexOutOfBoundsException。为什么?