赞
踩
注:更多详细方法请自行在 API 上查找
ArrayList和Vector的区别:是否是同步的
- package org.lanqiao.list.demo;
-
- import java.util.Iterator;
- import java.util.List;
- import java.util.Vector;
-
- public class VectorDemo {
- public static void main(String[] args) {
- List list = new Vector();
- list.add("aa");
- list.add("bb");
- list.add("cc");
- list.add(1);
- Vector v = (Vector)list;
- v.addElement("java");
- v.addElement(null);
- v.addElement(null);
- v.addElement(null);
- v.addElement(null);
- for(int i = 0 ; i < v.size();i++) {
- System.out.println(v.elementAt(i));
-
- }
- Iterator iter = v.iterator();
- while(iter.hasNext()) {
- System.out.println(iter.next());
-
- }
-
- }
- }
注:更多详细方法请自行在 API 上查找
LinkedList包含了栈、队列、链表的所有的操作。
- package org.lanqiao.list.demo;
-
- import java.util.LinkedList;
- import java.util.List;
-
- public class LinkedListDemo {
- public static void main(String[] args) {
- List list = new LinkedList();//接口的多态
- /*
- * 这里使用的是list接口的引用指向了LinkedList的对象
- * 这称为接口的多态
- * 那么因此在这里,我们适应list只能使用已经在List接口中声明的方法
- * 而不能使用LinkedList特有的方法
- * 如果要使用LinkedList特有的方法:
- * 直接声明LinkedList的对象
- * 将list进行向下转型
- */
- LinkedList linkedList = new LinkedList();
- LinkedList list2 = (LinkedList)list;
- linkedList.push(11);
- list2.push("aaa");
-
- }
- }
ArrayList和Vector的区别:是否是同步的
LinkedList 和 ArrayList、Vector的选择?
如果针对数据的操作中,查询元素用的比较多,用数组的实现。
如果针对数据的操作中,添加、插入和删除操作较为频繁,用链表的实现。
在实际开发中,使用List接口的多态更多。
ArrayList
①、List list1 = new ArrayList();
底层数据结构是数组,查询快,增删慢;线程不安全,效率高
②、List list2 = new Vector();
底层数据结构是数组,查询快,增删慢;线程安全,效率低,几乎已经淘汰了这个集合
③、List list3 = new LinkedList();
底层数据结构是链表,查询慢,增删快;线程不安全,效率高
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。