Java: Constructor- and Method-overloading exercise
In java, you can just set the value at the given index using that index. Thus, starting out with the simpler update book (which uses the book object), this becomes:

public Book updateBook(int index, Book book) {
    Book oldBook = books[index];
    books[index] = book;
    return oldBook;
}


Alike in the ... string title ... method, but now, you can even use the method from before:

public Book updateBook(int index, String title) {
    return updateBook(index, new Book(title));
}


Disclaimer: this has not been typed in an IDE or compiled, but just done on the fly, thus it might include bugs. But the concept should be clear.