初步学习对ArrayList和LinkedList的理解

来源:互联网 发布:淘宝换绑支付宝 编辑:程序博客网 时间:2024/04/29 01:46

首先讲解一下ArratList,开始学习之前,如果大家对于Array数组有很好的理解相信再去理解ArrayList就容易多了。首先arraylist跟linkedlist一样都是List的实现类,arraylist的本质其实就是数组,一般使用之前先这样生成ArrayList  list = new  ArratList();然后可以使用add方法向里面添加元素,例如list.add(“abc”);需要注意的是“abc”并不是源生数据类型,而是一个String类型,string是引用数据类型,或者说是一个类。由此就看出一点ArraList中存放的都是一个个的对象(其实对象不是原生数据类型也无法真正的存在数组中而是把对象的引用放进ArrayList,这一点跟一个对象类型的数组是一个道理的);所以当使用add往里面添加元素的时候一定不要出现这样的情况list.add(123);而必须把123经过一定的转换,list.add(new Integer(123)),这样才能存进去;相对应的有一个get方法,list.get(0);这样就得到了之前存进去的"abc"字符串了,把它真正的去处理来还得经过一个转换,String  a= (String)list.get(0).而要是想取出存进去的123,则必要定义一个对象Object  obj = list.get(1);总的来说ArrayList无论是存进去还是取出来都应该是object 类型的

下面是一个最近单的实例:

public class ArrayListTest
{
    @SuppressWarnings("unchecked")
    public static void main(String[] args)
    {
        ArrayList list = new ArrayList();
        list.add("zhangran");
        list.add(new Integer(12345));
        list.add(new Persion("ligang"));
        System.out.println(list);
        System.out.println("-------------");
        String s = (String)list.get(0);
        Integer integer=(Integer)list.get(1);
        int i = integer.intValue();
        Persion persion = (Persion)list.get(2);
        System.out.println(s);
        System.out.println(i);
        System.out.println(persion);
        
    }
}
class Persion
{
    String name;
    public Persion(String name)
    {
        this.name=name;
    }
    public String toString()
    {
        return name;
    }

}

相信大家都能看得明白吧。。。

写下来就是LinkedList,其实它与ArrayList表面上都是一样的,但是内部的存储结构却完全不一样,简言之,虽然ArrayList和LinkedList都是存的Object类型,但是在类的底层,ArrayList使用数组来存储的,而Linkedlist 使用双向链表来实现的,所以当我们常用与数据的查找的时候ArrayList效率会更高一些,但是当要涉及到增加或者删除的时候就可以使用LinkedList.至于LinkedList中的方法add ,get 跟ArrayList表面上没有任何差异,所以不再赘述。。。。


原创粉丝点击