集合之List

List集合

List常用的两个集合分别为ArrayList和LinkedList,因此对这两个集合进行总结

ArrayList

    1.特点

  • ArrayList 任意多个 任意类型的数据  有序可重复(添加顺序和输出顺序一致)
  • ArrayList是由数组实现的,查找和修改效率高。实现了所有可选列表操作,并允许包括 null 在内的所有元素。
  • 线程不安全的,创建线程安全的对象方式为:List list = Collections.synchronizedList(new ArrayList(...));

    2.遍历方式

        //1.for循环
        for (int i = 0; i <list.size() ; i++) {
			//System.out.println(list.get(i));
		}
		//2.foreach
		for (Object object : list) {
			//System.out.println("----"+object);
		}
		//3.迭代器
		//先获得对应容器的迭代器对象
		Iterator iterator = list.iterator();
	    //System.out.println(iterator.hasNext());
	    while(iterator.hasNext()){//判断是否后面还有元素
	    	System.out.println(iterator.next());//获取该位置的元素
	    }

LinkedList

    1.特点

  • (1)LinkedList储存任意类型,任意多个的元素并且有序可重复
  • (2) LinkedList是由链接实现的,在添加和删除数据方面效率高。实现所有可选的列表操作,并且允许所有元素(包括 null)。
  • (3)线程不安全,实现线程安全的方式为:List list = Collections.synchronizedList(new LinkedList(...));

     2.遍历方式

        //1.for循环
		for (int i = 0; i <linkedList.size(); i++) {
			//System.out.println(linkedList.get(i));
		}
		//2.foreach
		for (Object object : linkedList) {
			System.out.println(object);
		}
		//3.迭代器
		//获得对应容器的迭代器
		Iterator iterator = linkedList.iterator();
		//
		while (iterator.hasNext()) {
			Object object = (Object) iterator.next();
			System.out.println(object);
		}

ArrayList 和LinkedList的区别

 1.相同点:都可以储存任意类型,任意多个的元素,都是list接口的实现类

 2.不同点:(1)ArrayList是基于动态数组的数据结构,每个元素在内存中存储地址是连续的,根据下标查询的速度是很快的,向集合元素末尾添加的效率也是非常快的,删除数组中的元素以及向数组中间插入元素的效率就大打折扣了,当在添加的时候,会先去检测数组的长度,如果达到一定的峰值,会对数组进行一个扩容(前数组的1.5倍)

     (2)LinkedList是基于双向链表的数据结构,与ArrayList相反,LinkedList在添加和删除数据方面效率更高。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值