第七:Java集合框架(上)

一.

ArrayList底层采用数组实现,如果我们用new ArrayList()方式构造对象,底层会生成一个长度为10的数组,

该数组就存放往ArrayList中增加的内容,一旦数组元素存放满了,ArrayList就会生成一个新的数组,该数组

的长度为原数组长度的1.5倍+1,接下来将原数组的内容全部拷贝到新数组中,最后将新增的内容附加到新数组的最后面。

二.

ArrayList查找速度快,而删除元素、插入元素速度慢。

三.

LinkedList底层采用双向循环链表实现,查找速度慢,而删除元素、插入元素速度快。

四.

自己编写双向链表的实现

//双向循环链表的实现
public class TestList {
	public static void main(String[] args) {
		MyList m1=new MyList("one");
		MyList m2=new MyList("two");
		MyList m3=new MyList("three");
		
		m1.next=m2;
		m1.previous=m3;
		
		m2.next=m3;
		m2.previous=m1;
		
		m3.next=m1;
		m3.previous=m2;
		
		//插入一个元素
		MyList m4=new MyList("four");
		
		m1.next=m4;
		m4.previous=m1;
		m4.next=m2;
		m2.previous=m4;
		System.out.println(m1.next.previous.next.next.date);
		
		//删除一个元素
		m1.next=m2;
		m2.previous=m1;
		m4.previous=null;
		m4.next=null;
		System.out.println(m1.next.previous.next.next.date);
	}
}

class MyList{
	String date;
	MyList previous;
	MyList next;
	
	public MyList(String date){
		this.date=date;
	}
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值