List接口中最常用的实现类有:
ArrayList:底层实现是数组,线程不安全,效率高,查询效率高,修改,插入,删除效率低
LinkedList:底层实现是链表,线程不安全,效率高,查询效率低,修改,插入,删除效率高。
Vector:线程安全,效率低
ArrayList, LinkedList, Vector 实现类常用的方法
//在list对象中添加元素
list.add("sdffff");
//在list对象中给定位置添加元素
list.add(2,"qweq");
//在list对象中添加对象
list.addAll(list1);
//在list对象中给定位置添加对象
list.addAll(2, list1);
//清除list里面的元素
//list.clear();
//判断list中有没有包含"1234",有返回true,否则false
list.contains("1234");
//判断list中包不包含list1中所有的元素,有返回true,否则false
list.containsAll(list1);
//判断list中的内容和list1中的内容一不一致,如果一致返回true,否则返回false
list.equals(list1);
//根据下标获取list中的元素
list.get(0);
//获取list的哈希值
list.hashCode();
//判断第一个出现的元素是不是123,如果是返回true,否则false
list.indexOf("123");
//判断list中是否有元素,有返回true,否则false
list.isEmpty();
//遍历的迭代器
Iterator<String> iterator=list.iterator();
//hasNext()用来判断是否有下一页
while (iterator.hasNext()) {
//next()用来判断是否有一下个元素
System.out.println(iterator.next());
}
//判断list最后一次出现的元素是不是123,是返回true,否则false
list.lastIndexOf("123");
//listIterator迭代器中有个倒序,前提是存在正序
ListIterator<String> lists=list.listIterator();
while (lists.hasNext()) {
System.out.println(lists.next());
}
System.out.println("倒序");
while (lists.hasPrevious()) {
System.out.println(lists.previous());
}
两种迭代器的区别(Iterator和ListIterator)
http://blog.youkuaiyun.com/chensheng913/article/details/564320
//Iterator()不能指定从哪个地方开始遍历,而listIterator可以
list.listIterator(1);
//根据list对象中元素的下标来删除指定元素
list.remove(0);
//根据list对象中元素的值来删除
list.remove("123");
//根据list对象来删除
list.removeAll(list);
//根据list对象来删除指定位置的对象
list.retainAll(list1);
//修改list对象指定位置的元素
list.set(2, "qqq");
//返回list对象元素的数目
list.size();
//截取list对象中根据下标来截取需要的元素(切记:第一个元素是大于等于,第二个元素是小于的)
list.subList(0, 2);
//把list对象的元素赋值给toArray(参数),参数是数组,意思就是把数组list的值给到参数。
list.toArray();
list.toArray(new Integer[list.size()]);
//把list对象的元素以字符串的形式输出
list.toString();
//通知list对象中的元素可以运行了
list.notify();
//通知list对象可以运行了
list.notifyAll();
//通知list对象中的元素先等待
list.wait();
//notify(),wait()用在线程中
notify()和notifyAll()的区别
http://blog.youkuaiyun.com/zdw890412/article/details/7714443
如何选用?
线程安全用Vector.
线程不安全,查找较多用ArrayList,增加或删除元素较多用LinkedList.