gpt4 book ai didi

java - 安卓 Java : ArraylistMultiMap last value associated with the key is not getting deleted

转载 作者:行者123 更新时间:2023-12-01 09:27:16 24 4
gpt4 key购买 nike

在我的 Android 程序中,我在我的 Activity 之一中声明了 Multimap:-

Multimap<String, String> myMultimap = new ArrayListMultimap<String,String>();

它存储属于租借这些书籍的客户的书籍名称。

这里,客户是键,书名是属于该键的多个值。

我有一个 java 类“Books”,它具有以下方法:-

  1. deleteBooks() 从与该键关联的多个值中删除特定值。

这是代码:-

public ArrayList deleteBooks(String customer_name, String book_name)
{
Iterator keyIterator=myMultimap.keySet().iterator();
while(keyIterator.hasNext())
{
Object key = keyIterator.next();
Collecton cl1=myMultimap.get(customer_name);

if(myMultimap.containsEntry(customer_name,book_name))
{
if(cl1.size()==1 && cl1.contains(book_name))
{
keyIterator.remove();
}
cl1.remove(book_name);
}
}

al2=new ArrayList(cl1);
return al2;
}

deleteBooks() 返回一个数组列表到 MainActivity,该列表在属于特定客户的 ListView 中显示所有书籍名称。

当客户删除 ListView 中显示的众多图书名称之一时,该图书就会被删除。但是,当键值对中只剩下一本书时,就会出现问题。

map 中的最后一本书不会被删除。

我编写了代码来检查 map 中是否只剩下一本书,则应删除整个键,但键值对中的最后一个值仍然不会删除。

这个问题与多重映射有关还是我的代码中的某个地方出错了?

最佳答案

如果我没记错的话,你应该尝试使用

if(cl1.size()==0 && cl1.contains(book_name))
{
keyIterator.remove();
}

而不是

if(cl1.size()==1 && cl1.contains(book_name))
{
keyIterator.remove();
}

关于java - 安卓 Java : ArraylistMultiMap last value associated with the key is not getting deleted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39739572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com