ArrayList是java.util.List由动态数组支持的集合的实现。
这意味着三件事。
首先,您无需担心调整数组的大小、分配或处理元素到数组中,它们ArrayList会为您处理。
其次,任何想要 a 的方法List都不关心LinkedList解耦代码的实现(您可以传递 a 代替)(这意味着您可以更改实现而不会对依赖它的人产生不利影响,因为通过List接口制定的合同)
第三,要与 的内容进行交互List,您需要使用一种或多种接口访问方法。
你已经知道了add,但是要获取一个对象,你需要使用getwhich;
  返回此列表中指定位置的元素
你也可能对此有兴趣
当然,还有其他方法,但这些都是立即有用的。
我也会阅读Collections Trail
更新示例
public class Test {
    public static void main(String[] args) {
        new Test();
    }
    public Test() {
        List<Book> listOfBooks = new ArrayList<Book>();
        Book bk1 = new Book();
        listOfBooks.add(bk1);
        System.out.println("           bk1 = " + bk1);
        System.out.println("listOfBooks(0) = " + listOfBooks.get(0));
    }
    public class Book {
        String name;
        int pages;
        String auother;
        boolean available;
        String rentername;
        @Override
        public String toString() {
            return "Book: name = " + name + "; pages = " + pages + "; available = " + available + "; rentername = " + rentername + "; hashCode = " + hashCode();
        }
    }
}
哪个输出
           bk1 = Book: name = null; pages = 0; available = false; rentername = null; hashCode = 1137551390
listOfBooks(0) = Book: name = null; pages = 0; available = false; rentername = null; hashCode = 1137551390