java集合框架之链表

    链表的定义与结构就不详细介绍了。

    链表的优点(即数组的缺点):1. 能动态改变大小,而数组大小固定;2. 不需要连续存储空间; 3. 数据的逻辑次序靠节点的引用变量来实现,不需要移动数据。

    链表的缺点(即数组的优点):1. 链式存储结构,非随机存储,需要从表头逐个查找 2. 浪费存储空间,地址部分需要额外存储空间。

    java.util包中的LinkedList<E>泛型类创建的对象为双链表对象,主要方法有:

    public boolean add(E object)在链表尾部添加节点,或者add(int index,E object)在指定位置添加节点

    int size()返回链表长度;public void clear()清空链表等

    例:

<pre name="code" class="java">LinkedList<String> list=new LinkedList<String>();
list.add("How");
list.add("are");
则链表list就有了2个节点,索引0处为How,索引1处为are.
     LinkedList类与ArrayList类的 
本质区别为:前者使用链式存储结构,后者使用顺序存储结构。因此ArrayList不适合动态改变存储数据,如增、删操作(比链表慢),但是数组表获得第n个单元的数据比链表快,因为链表要从表头逐个查找。 

    遍历链表的时候,尽管可以使用size()方法和get(int index)方法,但对于所有的集合框架,推荐使用迭代器遍历。查看《java链表的get方法遍历VS使用迭代器遍历》。

   带泛型的LinkedList类与普通的LinkedList类的比较。泛型的优点就是:在使用泛型类建立的数据结构时,不必进行强制类型转换,即不要求运行时类型检查。

对比如下:

LinkedList myList=new LinkedList();//不带泛型的普通LinkedList,存储Object对象即任何对象,因为任何对象都是Object类的子类
myList.add("how");
String s=(String)myList.get(0);///get()返回Object对象,需要强制类型转换到普通对象
		
LinkedList<String> myList1=new LinkedList<String>();//带泛型,指定了该链表存储String类型的对象
myList1.add("how");
String s1=myList1.get(0);//无需类型转换

 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值