java - 如何在 Java 中删除 ArrayList 中的一个重复项
问题描述
我有一个 ArrayList,里面装满了许多相同的书。现在我需要能够实现一个方法lendBook (String bookName, String lenderName)
来删除这个列表的最后一个。如果我使用books.get(bookName).remove(book)
什么都不会发生。如果我使用books.get(bookName).remove(books.get(bookName).get(books.get(bookName).size()-1))
它会删除整个 ArrayList。提前感谢您的帮助。
public class Library extends HashMap {
public Map<String, ArrayList<Book>> books;
protected Map<String, Lender> lenders;
public Library() {
this.books = new HashMap<String, ArrayList<Book>>();
this.lenders = new HashMap<String, Lender>();
}
public void addBook (String bookName){
String key = bookName;
if (books.containsKey(key)){
books.get(key).add(new Book(bookName));
} else {
books.put(bookName, new ArrayList<Book>());
books.get(key).add(new Book(bookName));
}
}
public void addLender (String lenderName) throws java.lang.IllegalStateException {
String key = lenderName;
if (lenders.containsKey(key)){
throw new java.lang.IllegalStateException(lenderName);
} else {
lenders.put(lenderName, new Lender(lenderName));
}
}
}
解决方案
一种解决方案可能是检查 ArrayList 中的最后一个索引。您可以使用 ArrayList.size() 查看 ArrayList 的大小。所以例如
int size = ArrayList.size();
然后删除最后一个索引。
推荐阅读
- oracle - 如何在 Oracle 中正确定义日期类型数组?
- python - 一种基于另一列范围将标签列添加到大型 pd 数据帧的快速方法
- ios - 我的 textView bottomAnchor 似乎不起作用?
- javascript - 将查询参数附加到 GET 请求?
- css - 外部样式表应覆盖所有样式表和内部 CSS
- python - 在异常中搜索字符串是不好的做法吗?
- java - Maven说,尽管包含了POM,但它仍然缺少依赖项
- python - 如何使用 List Comprehensions 在一行中打印列表中的一系列整数?
- android-studio - 如何将自定义 Android 应用程序链接到静态 IP PC
- ios - 缓存故事板在它们之间切换的视图控制器