Java 添加存储在树映射中的值
我目前正在开发一个库存系统,其中键是项,值是存储在键中的项的数量,我正在使用Java 7,作为一种语言,我对它相当陌生。到目前为止,这就是我所拥有的:Java 添加存储在树映射中的值,java,treemap,Java,Treemap,我目前正在开发一个库存系统,其中键是项,值是存储在键中的项的数量,我正在使用Java 7,作为一种语言,我对它相当陌生。到目前为止,这就是我所拥有的: String itemName = item.trim().toLowerCase(); if(!add < 1) { if (!invMap.containsKey(itemName) { invMap.put(itemName, add); } Strin
String itemName = item.trim().toLowerCase();
if(!add < 1)
{
if (!invMap.containsKey(itemName)
{
invMap.put(itemName, add);
}
String itemName=item.trim().toLowerCase();
如果(!添加<1)
{
如果(!invMap.containsKey(itemName)
{
invMap.put(itemName,add);
}
当方法运行时,它会询问用户一个项目(项目)以及要添加多少项目(添加)我查看了Javadoc,看看是否有一种方法可以检索键下存储的值,但我没有看到任何有用的方法。我认为,如果我只是朝着正确的方向推一推,我应该能够找出其余的内容,我更喜欢提示,而不是一步一步地直接进行操作。您可以使用它来获取现有的值,然后添加add
,然后put
将其放回:
String itemName = item.trim().toLowerCase();
if( add >= 1)
{
if ( ! invMap.containsKey( itemName ) )
invMap.put( itemName, add );
else
invMap.put( itemName, add + invMap.get(itemName) );
}
}
您可以缩短它,因为Map.get
和导数返回null
如果密钥未知:
Integer old = invMap.get( itemName );
invMap.put( itemName, old == null ? add : add + old );
谢谢,我只是好奇,因为在我问之前,我已经试过这样做,但是在两行上分别使用add=invMap.get(itemName)+add;然后在下一行invMap.put(itemName,add)当在第一个返回中添加5时,它将输出10,然后在第二个返回中它将输出15。那么,为什么这可以工作,但不能将其拆分为两行呢?不客气。Javadoc是您的朋友;-)(另请参阅。