基本上等同于ArrayList
与 ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低。
以下情况使用 ArrayList :
- 频繁访问列表中的某一个元素。
- 只需要在列表末尾进行添加和删除元素操作。
以下情况使用 LinkedList :
- 你需要通过循环迭代来访问列表中的某些元素。
- 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。
1.在开头和结尾添加元素
-
public static void main(String[] args) { LinkedList<String> sites = new LinkedList<String>(); sites.add("Google"); sites.add("Weibo"); sites.addFirst("Wiki"); System.out.println(sites); }
[Wiki, Google, Weibo, zhihu]
-
2.在开头和结尾移出元素
-
public static void main(String[] args) { LinkedList<String> sites = new LinkedList<String>(); sites.add("Google"); sites.add("Weibo"); sites.add("Taobao"); sites.removeFirst(); sites.removeLast(); System.out.println(sites); }
[Weibo]
-
3.查看首和尾元素
-
public static void main(String[] args) { LinkedList<String> sites = new LinkedList<String>(); sites.add("Google"); sites.add("Weibo"); sites.add("Taobao"); System.out.println(sites.getLast()); System.out.println(sites.getFirst()); }
4.遍历list(和ArrayList一致,这两种方法都可以访问)
-
public static void main(String[] args) { LinkedList<String> sites = new LinkedList<String>(); sites.add("Google"); sites.add("Weibo"); sites.add("Taobao"); for(int i=0;i<sites.size();i++) { System.out.println(sites.get(i)); } for(String i:sites) { System.out.println(i); } }