LinkedList是对双链表的一种实现,插入删除时间开销是O(1),查找、随机访问时间开销是O(n)。
如果一个集合要求频繁随机插入删除,不要求随机访问,可以考虑采用LinkedList。
<span style="font-family: Arial, Helvetica, sans-serif;">//新建</span>
<span style="font-family: Arial, Helvetica, sans-serif;">LinkedList<String> lk = new LinkedList<String>();</span>
//在后面追加,正常的添加方式,用getLast()获得最晚push的元素,去掉push的注释,注释掉add,可以看到输出顺序颠倒。
lk.add("11");
lk.add("22");
lk.add("33");
<pre name="code" class="java"><span style="font-family: Arial, Helvetica, sans-serif;">//在前面添加,用getLast()获得最早push的元素</span>
<span style="font-family: Arial, Helvetica, sans-serif;">/</span><span style="font-family: Arial, Helvetica, sans-serif;">/lk.push("11");</span>
<span style="font-family: Arial, Helvetica, sans-serif;">//lk.push("22");</span>
//lk.push("33");
//O(1)的访问方法,获取头部、尾部元素
System.out.println(lk.getFirst());//out: 11
System.out.println(lk.getLast());//out: 33
//迭代器,最初指向第一个元素之前的位置,it.next()返回下一个元素,不断调用来遍历。
Iterator<String> it = lk.iterator();
while(it.hasNext()){
System.out.println(it.next());//out: 11 22 33
}
//foreach遍历方式
for(String s:lk){
System.out.println(s);//out: 11 22 33
}