一.
接下来讲述另外一个,看一下框架中有哪些?
先说LinkedList,ArrayList有机会再说。ArrayList就是数组,没什么好说的。
List下面有个小弟,就是LinkedList,也就是链表。
一般方法中有两个addFirst和addLast,这是链表特有的。如果你手里面有一个链子的话,中间的环是一个扣一个,要是添加的话,从头或者尾操作是最方便的。
因此,提供了头或者尾添加的方法。
链表对外直接操作最明显的就是头和尾,
LinkedList属于迭代器,输出的结果就是倒过来的。
为什么输出结果是这样的?非常简单。接着说一些小东西。
从结果来看,getFirst方法是输出,不会对容器造成损失,不同于迭代器。
这个操作是获取第一个元素,但不删除。同时,也具备删除的方法。
removefirst也会往外面返,谁被删除,谁就往外返。
remove会改变长度的,removefist也是获取元素,但是会删除。
这两个方法的区别就在于一个删除,一个不删除。
按照删除的方法,就可以获取LinkedList中所有的元素,不用迭代器。获取一个删一个,删光了就不再获取了。
怎么判断呢?只要有元素我就拿,或者说删,删到里面没有为止,这个方法就是Isempty。
再换成removeLast方法,就变成了输入1.2.3.4,输出也是1.2.3.4;改成removeFirst方法就是存储是1,2,3,4,输出则是4,3,2,1。
package collectionsDemo; import java.util.Iterator; import java.util.LinkedList; import java.util.List; public class LinkedListDemo { public static void main(String[] args) { LinkedList link = new LinkedList(); link.addFirst("abc1"); link.addFirst("abc2"); link.addFirst("abc3"); link.addFirst("abc4"); System.out.println(link.getFirst());//abc4 System.out.println(link.getLast());//abc1 System.out.println(link.removeFirst());//返回abc4 //获取元素但会删除 //[abc3, abc2, abc1] System.out.println(link); // Iterator it = link.iterator(); // // while (it.hasNext()) { // System.out.println(it.next()); // } while (!link.isEmpty()) { System.out.println(link.removeFirst()); // abc3 // abc2 // abc1 } } }