![](/img/trans.png)
[英]Create a random within a range from an ArrayList within an Arraylist
[英]Create and use an ArrayList from within a single method?
是否可以在方法內創建和使用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
方法,而是在沒有add
方法的MinStack
類對象實例上調用它。
您應該改為調用push
方法,因為它是在您的類中定義的,它將調用arraylist的add
方法。 否則在MinStack
類中使用名稱add
定義/重命名(推送) method
您使用了不合適的設計策略來實現此類。 它們在您的實現中有很多流程,在這里我不再談論這些。 在您的設計方法內,不要在類中調用push()
來調用實現的行為。 您正在嘗試調用該類中未實現的方法add()
。 如果要在類中使用冒犯的行為,只需將您的方法調用為smalls.push(elMin)
, smalls.add(elMin)
。
smalls.add(elMin)
正在尋找MinStack類的add方法。 您應該調用push方法將elMin插入數據arrayList中。
我想你可以像下面這樣:
public int min() {
if(data.isEmpty())
throw new RuntimeException("the list is empty...");
int elMin = data.get(0);
for(int i : data) {
if(i < elMin) {
elMin = i;
}
}
return elMin;
}
嘗試這個 :
調用push方法將elMin
插入ArrayList data
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.