List接口

来源:互联网 发布:巫师3上古卷轴5 知乎 编辑:程序博客网 时间:2024/06/03 12:31

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.csdn.net/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.csdn.net/zdw890412/article/details/7714443

如何选用?
线程安全用Vector.
线程不安全,查找较多用ArrayList,增加或删除元素较多用LinkedList.

原创粉丝点击