先单独列几个以前没注意到的小知识点:
1.在打印对象时(即使用System.out.print方法时)会自动调用toString()方法,所以如果要输出自己想要输出的值只需要重写toString()方法就可以了。
2.如以下代码所示
此时add方法里仍是对象且称为匿名对象。
3:父类类型的引用可以调用父类类型的所有属性和方法,而子类定义的方法如果不是重写的父类方法则无法使用。
List接口
分为ArrayList集合和LinkedList集合(链表)
注:List本身是接口所以是抽象类方法不能被实例化,即List a = new List();会直接报错。如果要使用需定义为List a = new ArrayList(); 或List a = new LinkedList();
ArrayList:
主要有add,get,remove,set方法
LinkedList:
-
public void addFirst(E e)
:将指定元素插入此列表的开头。 -
public void addLast(E e)
:将指定元素添加到此列表的结尾。 -
public E getFirst()
:返回此列表的第一个元素。 -
public E getLast()
:返回此列表的最后一个元素。 -
public E removeFirst()
:移除并返回此列表的第一个元素。 -
public E removeLast()
:移除并返回此列表的最后一个元素。 -
public E pop()
:从此列表所表示的堆栈处弹出一个元素。 -
public void push(E e)
:将元素推入此列表所表示的堆栈。 -
public boolean isEmpty()
:如果列表不包含元素,则返回true。
ArrayList和LinkedList的区别:
ArrayList 类实现了可变数组的大小,存储在内的数据称为元素。它还提供了快速基于索引访问元素的方式,对尾部成员的增加和删除支持较好。使用 ArrayList 创建的集合,允许对集合中的元素进行快速的随机访问,不过,向 ArrayList 中插入与删除元素的速度相对较慢。
LinkedList 类采用链表结构保存对象,这种结构的优点是便于向集合中插入或者删除元素。需要频繁向集合中插入和删除元素时,使用 LinkedList 类比 ArrayList 类效果高,但是 LinkedList 类随机访问元素的速度则相对较慢。这里的随机访问是指检索集合中特定索引位置的元素。