3
我正在寫一個程序,它使用ListIterator操縱ArrayList而不使用任何ArrayList方法。在這種情況下ArrayList應該表現得像一個集合。添加到ArrayList對象的ListIterator
我的add方法遍歷ArrayList,並將每個元素與要添加的數字進行比較,以避免重複。 OurSet()
是該類的構造函數。我還重新定義了使用ListIterator方法打印的toString方法。
當我測試這兩個方法時,似乎add方法實際上沒有添加任何東西(或者print語句沒有顯示它)。使用下面主要方法的輸出是空白的,我不太清楚爲什麼。我跟蹤了代碼幾次,並在方法中放置打印語句以確保它們貫穿每一行。在toString方法中,它永遠不會進入while循環。代碼如下,任何幫助表示讚賞!
OurSet()
{
// list is the ArrayList object, it was defined earlier and now instantiated
list = new ArrayList();
// iter is the ListIterator object, it was defined earlier and now instantiated
iter = list.listIterator();
}
public void add(int x)
{
while(iter.hasNext())
{
int item = (Integer) iter.next();
if(item == x)
break;
}
iter.add(new Integer(x));
}
public String toString()
{
String set = "";
while(iter.hasNext())
{
int item = (Integer) iter.next();
set += item + " ";
}
return set;
}
這是我的主要方法。
public static void main(String args[])
{
OurSet set = new OurSet();
set.add(50);
System.out.println(set);
}
off-top但是:'set + = item +「」;'避免循環中的字符串連接。改用'StringBuilder'和'append'方法。示例:http://stackoverflow.com/a/1532483/1393766,在這個問題上的問題:http://stackoverflow.com/questions/14927630/java-string-concat-vs-stringbuilder-optimised-so-what-should -我做 – Pshemo