我正在编写新闻Feed程序,我正在尝试检查项目是否正确添加到列表数组中。在我的测试工具中,我尝试在添加组合项目后打印数组的内容,但是当我运行程序时,没有显示任何内容。我的toString方法(或其他方法)有问题吗?谢谢你的帮助。
public class Feed {
private final int DEFAULT_MAX_ITEMS = 10; // default size of array
/* Attribute declarations */
private String name; // the name of the feed
private String[] list; // the array of items
private int size; // the amount of items in the feed
/**
* Constructor
*/
public Feed(String name){
list = new String[DEFAULT_MAX_ITEMS];
size = 0;
}
/**
* add method adds an item to the list
* @param item
*/
public void add(String item){
item = new String();
// add it to the array of items
// if array is not big enough, double its capacity automatically
if (size == list.length)
expandCapacity();
// add reference to item at first free spot in array
list[size] = item;
size++;
}
/**
* expandCapacity method is a helper method
* that creates a new array to store items with twice the capacity
* of the existing one
*/
private void expandCapacity(){
String[] largerList = new String[list.length * 2];
for (int i = 0; i < list.length; i++)
largerList[i] = list[i];
list = largerList;
}
/**
* toString method returns a string representation of all items in the list
* @return
*/
public String toString(){
String s = "";
for (int i = 0; i < size; i++){
s = s + list[i].toString()+ "\n";
}
return s;
}
/**
* test harness
*/
public static void main(String args[]) {
Feed testFeed = new Feed("test");
testFeed.add("blah blah blah");
System.out.println(testFeed.toString());
}
}
答案 0 :(得分:0)
这里有很多问题。首先,我建议:
1)丢失“size”成员变量
2)用ArrayList<String> list
替换成员变量“String [] list”
3)使用list.size()
代替单独的“尺寸”变量
4)您也可能丢失(或简化)“add()”方法。只需使用list.add()
代替。
5)逐步调试。验证“list”会按预期添加到您期望的位置。
最后
6)逐步调试“toString()”。确保“list”具有您期望的大小和内容。
'希望有所帮助......