linkedlist

本文探讨了Java中LinkedList与ArrayList的不同之处,包括它们的内部实现、性能特点及适用场景。LinkedList基于链表,适用于频繁的插入删除操作;而ArrayList基于数组,更适合随机访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



import java.util.LinkedList;

/* 2017-02-18 09:57:08
 *	linkedlist 是list接口的实现类    是一个list 集合 可以根据索引随机访问集合中的元素
 *	还实现了deque 接口  可以使用双端队列方法   既可以是栈  也可以是队列
 *	内部实现是使用了链表的形式来保存集合中的元素 
 *	随机访问元素的性能较差  插入删除   性能较好      内部只需要改变  指针的地址即可  
 *	vector 也是以数组的形式来存储集合元素 ,实现了线程同步,性能更加不好
 *
 *
 *分析
 ****
 * 都是线性表的两种典型实现
 * arraylist  基于数组的线性表
 * linkedlist 基于链表的线性表   不仅有list 的功能  还实现了deque 的   具有 双端队列、栈的功能
 *
 * queue 队列
 * deque 双端队列   既可以是队列也可是作为栈
 * 
 * 数组是以一块连续的内存区来保存所有的元素  随机访问的性能较好   内部以数组作为底层的实现的集合 在随机访问的性能都较好
 * 内部以链表实现的  插入删除 性能较好   
 * 总体来说  arraylist性能比linkedlist 性能较好
 * 大部分时候都应该是使用arraylist
 * 
 * 
 * 
 * list 集合建议
 *	 遍历list 集合元素        arraylist  vector集合   应该使用 随机访问 方法 get 来遍历   性能更好
 *	 遍历linkedlist  是用迭代器 iterator  来遍历集合
 *
 * 	经常 插入 删除   操作大量数据的list集合的大小 可以使用linkedlist 
 *	arraylist、vector 集合可能需要经常重新分配内存数组的大小 效果不好
 *
 *	多线程需要同时访问list集合的元素时,应该考虑使用collections 集合包装成线性安全的集合
 *
 *
 */
public class Linkedlistj {
	public static void main(String[] args) {
		LinkedList linkedList = new LinkedList();
		linkedList.add("a");  //list 方法
		linkedList.offer("b"); //	 deque方法
		for (int i = 0; i < linkedList.size(); i++) {
//			Object object = linkedList.get(i);
//			System.out.println(object);
			System.out.println(linkedList.get(i));  // list 遍历
		}
		
		System.out.println(linkedList.peekLast());
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值