- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经在这个程序上工作了几个小时,并且已经解决了几乎所有其他类(class)中出现的错误。然而,我似乎可以修复接收方法。接收方法应首先检查(通过比较 SKU)传入的产品是否已在 myCatalog 中。如果没有,请将产品(通过其 SKU)添加到目录中。之后,无论如何 - 只要仍有一些传入的产品尚未放入垃圾箱 - 我想找到哪个垃圾箱包含的总量最少。 (如果所有垃圾箱已满,请添加一个新的空垃圾箱以供使用)我会将特定产品添加到该垃圾箱中,直到垃圾箱已满(此时我会重复)或我用完该产品。重复此过程,直到没有更多传入产品剩余为止。
public class Warehouse
{
private int myBinMax;
private ArrayList<MusicMedia> myCatalog;
private ArrayList<Bin> myBins;
public Warehouse( int binMax )
{
myBinMax = binMax;
myCatalog = new ArrayList<MusicMedia>();
myBins = new ArrayList<Bin>( 5 );
}
public String toString()
{
return Tester.detailedInventory(myCatalog,myBins);
}
public void addBin()
{
myBins.add( new Bin( "B" + myBins.size() ) );
}
public void receive( MusicMedia product, int quantity )
{
boolean contained = false;
int lowestAmount = myBinMax,
leastFullBinIndex,
i,
insertQuantity;
for(MusicMedia entry : myCatalog)
{
if(entry.getSKU().equals(product.getSKU()))
{
contained = true;
}
}
if(!contained)
{
myCatalog.add(product);
}
while(quantity > 0)
{
lowestAmount = myBinMax;
for(i = 0; i < myBins.size(); i++)
{
if(myBins.get(i).totalQuantity() < lowestAmount)
{
lowestAmount = myBins.get(i).totalQuantity();
leastFullBinIndex = i;
}
if((i == myBins.size() - 1 && lowestAmount == myBinMax)||(myBins.size() == 0))
{
myBins.add(new Bin("bin" + Integer.toString(i)));
}
}
if(quantity >= myBinMax - lowestAmount)
{
insertQuantity = myBinMax - lowestAmount;
}
else
{
insertQuantity = quantity;
}
quantity -= insertQuantity;
myBins.get(i).add(new BinItem(product.getSKU(), insertQuantity));
}
}
}
在我上次编辑之前,不会打印任何内容 - 只是一个空白控制台 - 但为了解决这个问题,我添加了以下内容(也包含在上面的代码中):
if((i == myBins.size() - 1 && lowestAmount == myBinMax)||(myBins.size() == 0))
{
myBins.add(new Bin("bin" + Integer.toString(i)));
}
现在,它不会在没有给出错误的情况下运行:
java.lang.IndexOutOfBoundsException
Index: 0, Size 0 (in java.util.ArrayList)
以及突出显示以下行:
myBins.get(i).add(new BinItem(product.getSKU(), insertQuantity));
以下是为这个庞大的程序创建的各种类的详细信息:
MusicMedia 具有三个私有(private)变量,但唯一与此相关的是通过 getSKU() 获取的字符串 mySKU
Bin 有一个私有(private)字符串 name(也是它唯一的参数),以及 BinItem 类的私有(private) ArrayList。为了从另一个类访问此 BinItems ArrayList,您可以使用 getContents()。它还具有方法totalQuantity(),该方法返回容器中已有对象的总数。
BinItem 有私有(private)变量 mySKU (String) 和 myQuantity (int) 以及方法 getSKU() 和 getQuantity(),两者都是按该顺序的参数
最佳答案
所以首先你没有垃圾箱。
您的“for” block 被跳过,因为大小为零;
所以我们到达“while”循环的最后一行,然后执行 myBins.get(i)...这是我们收到错误的地方,因为我们无法获取索引 0 处的 bin,因为我们根本没有 bin。
问题是我们在没有添加任何垃圾箱的情况下到达了这行代码...
我不确定您是否意识到,下面的行不会以 5 个垃圾箱启动您的程序。
myBins = new ArrayList<Bin>( 5 );
此代码中的 5 设置数组的内部缓冲区以容纳 5 个项目。如果我们没有提供数字,它将从 10 开始。但是这些数字只是让程序员控制初始化多少内存。
如果您的目标是从 5 个垃圾箱开始,您应该执行以下操作:
myBins = new ArrayList<Bin>( 5 );
for(int i=0; i<5; i++){
myBins.add(new myBin());
}
关于java - 获取“index : 0"and "size:0"error from ArrayList. size(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22446120/
ValueError Traceback (most recent call last) in 23 out
在 CSS 中,我从来没有真正理解为什么会发生这种情况,但每当我为某物分配 margin-top:50% 时,该元素就会被推到页面底部,几乎完全消失这一页。我假设 50% 时,该元素将位于页面的中间位
我正在尝试在 pyTorch 中训练我的第一个神经网络(我不是程序员,只是一个困惑的化学家)。 网络本身应该采用 1064 个元素向量并用 float 对它们进行评级。 到目前为止,我遇到了各种各样的
我有一个简单的问题。如何在 3 个维度上移动线性阵列?这似乎太有效了,但在 X 和 Y 轴上我遇到了索引问题。我想这样做的原因很简单。我想创建一个带有 block 缓冲区的体积地形,所以我只需要在视口
我正在尝试运行我购买的一本关于 Pytorch 强化学习的书中的代码。 代码应该按照本书工作,但对我来说,模型没有收敛,奖励仍然为负。它还会收到以下用户警告: /home/user/.local/li
我目前正在使用 this repo使用我自己的数据集执行 NLP 并了解有关 CNN 的更多信息,但我一直遇到有关形状不匹配的错误: ValueError: Target size (torch.Si
UIScrollView 以编程方式设置,请不要使用 .xib 文件发布答案。 我的 UIScrollView 位于我的模型类中,所以我希望代码能够轻松导入到另一个项目中,例如。适用于 iPad 或旋
我在我的 Ruby on Rails 应用程序(版本 4.3.1)中使用 Bootstrap gem。我最近发现了响应式字体大小功能 (rfs)。根据 Bootstrap 文档,它刚刚在 4.3 版中
这个问题不太可能帮助任何 future 的访客;它仅与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the
size 之间的语义区别是什么?和 sizeIs ?例如, List(1,2,3).sizeIs > 1 // true List(1,2,3).size > 1 // true Luis 在 c
我想从 div 中删除一些元素属性。我的 div 是自动生成的。我想遍历每个 div 和子 div,并想删除所有 font-size (font-size: Xpx)和 size里面font tag
super ,对 Python 和一般编程 super 新手。我有一个问题应该很简单。我正在使用一本使用 Python 3.1 版的 python 初学者编程书。 我目前正在写书中的一个程序,我正在学
我无法从 NativeBase 更改缩略图的默认大小。我可以显示默认圆圈,即小圆圈和大圆圈,但我想显示比默认大小更大的圆圈。这是我的缩略图代码: Prop 大小不起作用,缩略图仍然很小。 我的 Na
我是pytorch的新手。在玩张量时,我观察到了两种类型的张量- tensor(58) tensor([57.3895]) 我打印了它们的形状,输出分别是 - torch.Size([]) torch
这是我的 docker images 命令的输出: $ docker images REPOSITORY TAG IMAGE ID CREATED
来自 PriorityQueue 的代码: private E removeAt(int i) { assert i >= 0 && i < size; modCount++;
首先,在我的系统上保留以下内容:sizeof(char) == 1 和 sizeof(char*) == 4。很简单,当我们计算下面类的总大小时: class SampleClass { char c
我正在编写一个游戏来查找 2 个图像之间的差异。我创建了 CCSprite 的子类 Spot。首先我尝试创建小图像并根据其位置添加自身,但后来我发现位置很难确定,因为很难避免 1 或 2 个像素的偏移
我有一个 Tumblr Site每个帖子的宽度由标签决定。 如果一篇文章被标记为 #width200,CSS 类 .width200 被分配。 问题是,虽然帖子的宽度不同,但它们都使用主题运算符加载相
这个问题在这里已经有了答案: What is the ideal growth rate for a dynamically allocated array? (12 个答案) 关闭 8 年前。 我
我是一名优秀的程序员,十分优秀!