Java中ArrayList、linkedList的使用和区别

          Java中的ArrayList、LinkedList以及它们的区别
一、ArrayList
1.什么是ArrayList:
    1.1、ArrayList就是动态数组,它提供了一些好处:
    1.2、动态的增加和减少一些元素
    1.3实现了collection和list的接口
    1.4、灵活的设置数组的大小
2.ArrayList的常用方法
    2.1、构造方法
    //构造一个具有指定初始化容量的列表
    public ArrayList(int? initial Capacity);
    //构造一个初始容量为10的空列表
    public ArrayList(10);
    2.2常用方法
        2.2.1、添加元素
        add(E e);//将指定的元素添加到此列表的尾部
        add(int? E? element);//将指定的元素插入此列表中的指定位置
        2.2.2删除元素
        remove(int? index);//移除此列表中指定位置上的元素,向左移动所有后续元素
        remove(object?0);//移除此列表中首次出现的指定元素(如果存在),则列表不
        做移动(如果不存在)。
        clear()//移除列表中的所有元素,此调用返回后,列表将为空
        2.2.3获取元素的总数
        size();//返回列表中的元素数
        2.2.4获取元素
        get(int index);//返回此列表中最后一次出现的指定元素
        2.2.5设置位置
        set(int index , element);//用指定的元素替代此列表中指定的元素
        2.2.6查找
        indexOf(object o);//返回此列表中最后一次出现的指定元素的索引,
        或如果此列表中不包含索引,则返回-1
        2.2.7转换为数组
        toArray();//安适当顺序(从第一个到最后一个)返回包含数组中所有
        元素的数组。
3、使用ArrayList的实例
import java.util.Arraylist;
public class List1{
    public class void main(String [] args){
       int i;
       ArrayList list = new ArrayList();
       //添加元素
       list.add("aaa");
       list.add("bbb");
       list.add("ccc");
       list.add("ddd");
       list.add("eee");
       //遍历集合
       for(int i = 0;i< list.size();i++){
           Ststem.out.println(list.fet(i))
       }
       //删除元素
       list.remove(3);
       Ststem.out.println("将索引是3 的元素删除后,数组的元素是:")
       for(int i = 0;i< list.size();i++){
           Ststem.out.println(list.fet(i))
       }
       //set();的使用举例
       String s = new String("t");
       list.set(0,t);
       list.set(1,h);
       Ststem.out.println("使用set()后,数组的元素是:")
       for(int i = 0;i< list.size();i++){
           Ststem.out.println(list.fet(i))
       }
    }
}
二、LinkedList
   1.什么是linkedlist
   2.linkedlist的实例
import java.util.*;  
  
public class LinkedListDemo {  
      
    public static void main(String []args){  
          
        LinkedList  list = new LinkedList();  
        //添加元素  
        list.add("one");  
        list.add("two");  
        list.add("three");
	//size()返回链表中的元素数
        
        System.out.println("<--list中的内容 :" + list + "-->");  
        //返回链表中的第一个元素  
        String first = (String) list.getFirst(); 
	//返回链表中的最后一个元素
        String last = (String) list.getLast();  
        System.out.println("<--list中第一个元素为 :" + first + "-->");  
          
        //在链表最前面添加一个元素  
        list.addFirst("Begin");
        System.out.println("<--list中最后一个元素为 :" + last + "-->");
	在元素最末尾添加一个元素
        list.addLast("End");  
        
        System.out.println("<--list中的内容 :" + list + "-->");  
        System.out.println("<--删除list中的第一个和最后一个元素-->");
	//删除链表中的第一个元素
        list.removeFirst(); 
	删除链表中的最后一个元素
        list.removeLast();  
        System.out.println("<--list中的内容 :" + list + "-->");         
    }  
}  
三、ArrayList、LinkedList的区别
1.ArrayList、是基于动态数组的数据结构,而LinkedList 是基于链表的数据结构

2.在往里面插入数据时(add、remove操作时),linkedlist会比arraylist快很多,
因为前者仅仅是一个类型的插入,而后者要将整个数组向后移动
3.对于随机访问的(get()/set())操作,arraylist优先于linkedlist,因为linkedlist
要移动指针
总之,当操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机的访问
其中的元素时,使用arraylist会提供较好的性能;当你操作的是在一列数据的前面或中
间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用linkedlist.
 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章