Java List知识点总结

1.List接口Collection接口的一个子接口,List集合类中元素有序、且可重复,集合中的每个元素都有其对应的顺序索引

2.List接口实现类有ArrayList、LinkedList、Vector

  (1)ArrayList

  • ArrayList是List接口的主要实现类

  • ArrayList的底层数据结构是动态数组,查询效率高,增删慢

  • ArrayList是线程不安全的,而Vector是线程安全的,即使为保证List集合线程安全,也不推荐使用Vector;

  • 元素可以为null;

  (2)LinkedList

  • 底层数据结构是链表,查询慢,增删快

  • 线程不安全,效率高

  • 对于频繁的插入或删除元素的操作,建议使用LinkedList,效率较高;

  (3)Vector

  • Vector 是一个古老的集合,JDK1.0就有了。大多数操作与ArrayList相同,区别之处在于Vector是线程安全的。
  • 在各种list中,最好把ArrayList作为缺省选择。
  • 当插入、删除频繁时,使用LinkedList;Vector总是比ArrayList慢,所以尽量避免使用
  • Vector类的所有方法均是同步的,可以由两个线程安全地访问一个Vector对象,但是一个线程访问Vector的话代码要在同步操作的基础上耗费大量的时间,在不需要保证线程安全的时候建议使用ArrayList。
  • Vector是线程同步的,所以访问效率要比ArrayList慢
  • 底层数据结构是数组、查询快、增删慢

3.List集合的常用方法

(1)void add(int index, Object ele) :向列表的指定索引处插入元素,指定索引及之后的元素后移

(2)void add(Object ele):向列表的尾部添加指定的元素

(3)boolean addAll(int index, Collection eles): 将指定collection中的所有元素都插入到列表中的指定位置

(4)boolean contains(Object o):如果列表中包含指定元素则返回true

(5)boolean containsAll(Collection c):如果列表中包含指定Collection的所有元素,则返回true

(6)Object get(int index):返回列表中指定位置的元素

(7)int indexOf(Object obj) :返回此列表中第一次出现的指定元素的索引,如果此列表不包含该元素,则返回-1

(8)int lastIndexOf(Object obj) :返回此列表中最后出现指定元素的索引,如果不存在此元素返回-1

(9)Object remove(int index) :删除指定索引位置的元素

(10)Object set(int index, Object ele) :将集合中指定位置的元素用指定元素替换

(11)List subList(int fromIndex, int toIndex):返回列表中指定的fromIndex(包括)和toIndex(不包括)之间的部分视图

4.List集合的遍历

    List集合的遍历有三种方法,分别为增强for循环,利用Iterator、传统的for循环

   (1)增强for循环

	@Test
    public void test2() {
    	List l1 = new ArrayList();
    	l1.add(123);
    	l1.add("AA");
    	l1.add(new String("狼来了"));
    	//增强for循环
    	for(Object l:l1) {
    		System.out.print(l+"\t");
    	}
    }

(2)利用Iterator

        List l1 = new ArrayList();
    	l1.add(123);
    	l1.add("AA");
    	l1.add(new String("狼来了"));
    	//Iterator迭代
    	Iterator iter = l1.iterator();
    	while(iter.hasNext()) {
    		System.out.println(iter.next());
    	}
123
AA
狼来了

(3)传统for循环

	@Test
    public void test3() {
    	List l1 = new ArrayList();
    	l1.add(123);
    	l1.add("AA");
    	l1.add(new String("狼来了"));
    	//一般for循环
    	for(int i= 0;i<l1.size();i++) {
    		System.out.print(l1.get(i)+"\t");
    	}
    }

5.注意事项:

    添加进List集合中的元素(对象)所在的类一定要重写equals()方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值