首页 > 解决方案 > 如何在 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));
        }
    }
}

标签: java

解决方案


一种解决方案可能是检查 ArrayList 中的最后一个索引。您可以使用 ArrayList.size() 查看 ArrayList 的大小。所以例如

int size = ArrayList.size();

然后删除最后一个索引。


推荐阅读