在写随机背包的时候遇到一个问题,add()方法总抛出dispatchUncaughtException异常。
public class RandomBag<Item> implements Iterable<Item> {
private int max = 2;
private int N;
private Item[] bag;
public RandomBag() {
Item[] bag = (Item[]) new Object[max];
}
发现问题在于,有了private
的Item[] bag
和以后在构造函数里面再一次创建了Item[] bag
解决方法也很简单,构造函数改为:
public RandomBag() {
bag = (Item[]) new Object[max];
}
最近在看算法第四版,重点放在算法上,之后学习Java语言时再去深究具体的原理。