Here is my solution to lab 3:
import java.util.*;
public class Library {
private ArrayList shelf;
private ArrayList checkedOut;
public Library()
{
shelf = new ArrayList();
checkedOut = new ArrayList();
}
// Part 1
public void listBooksOnShelf()
{
for (int currentBookIndex = 0;
currentBookIndex < shelf.size();
currentBookIndex ++)
{
System.out.println(shelf.get(currentBookIndex));
}
}
// Part 1
public void listBooksCheckedOut()
{
for (int currentBookIndex = 0;
currentBookIndex < checkedOut.size();
currentBookIndex ++)
{
System.out.println(checkedOut.get(currentBookIndex));
}
}
// Part 2
public void printAllBooks()
{
System.out.println("On Shelf:");
listBooksOnShelf();
System.out.println("Checked Out:");
listBooksCheckedOut();
System.out.println();
}
// Part 3
public static void main(String args[])
{
Library library = new Library();
library.addBook(new Book("Book1"));
library.addBook(new Book("Book2"));
library.addBook(new Book("Book3"));
library.addBook(new Book("Book4"));
library.addBook(new Book("Book5"));
System.out.println("===== START =====");
library.printAllBooks();
System.out.println();
Book book2 = library.checkOut("Book2");
library.checkOut("Book4");
System.out.println("===== BOOKS 2 AND 4 CHECKED OUT =====");
library.printAllBooks();
System.out.println();
library.checkIn(book2);
System.out.println("===== BOOK 2 CHECKED IN =====");
library.printAllBooks();
System.out.println();
}
// Part 4
public void addBooks(Book newBook, int copyCount)
{
for (int currentCopyNumber = 0;
currentCopyNumber < copyCount;
currentCopyNumber ++)
{
// Be careful here - Want to add different copies of the book.
shelf.add(new Book(newBook.toString()));
}
}
// All of the following code was given
public void addBook(Book newBook) {
shelf.add(newBook);
}
public void checkIn(Book book) {
if (isCheckedOut(book.toString())) {
int idx = checkedOut.indexOf(book);
checkedOut.remove(idx);
shelf.add(book);
}
}
public Book checkOut(String title) {
if (isOnShelf(title)) {
int idx = shelf.indexOf(new Book(title));
shelf.remove(idx);
Book bk = new Book(title);
checkedOut.add(bk);
return bk;
} else {
return null;
}
}
public boolean isCheckedOut(String title) {
return checkedOut.contains(new Book(title));
}
public boolean isOnShelf(String title) {
return shelf.contains(new Book(title));
}
public int totalNumBooks() {
return shelf.size() + checkedOut.size();
}
}