程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java list用法示例詳解

java list用法示例詳解

編輯:關於JAVA

java list用法示例詳解。本站提示廣大學習愛好者:(java list用法示例詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是java list用法示例詳解正文


|--List:元素是有序的(怎樣存的就怎樣掏出來,次序不會亂),元素可以反復(角標1上有個3,角標2上也能夠有個3)由於該聚集系統有索引,
  |-- ArrayList:底層的數據構造應用的是數組構造(數組長度是可變的百分之五十延伸)(特色是查詢很快,但增刪較慢)線程分歧步
  |-- LinkedList:底層的數據構造是鏈表構造(特色是查詢較慢,增刪較快)
  |-- Vector:底層是數組數據構造 線程同步(數組長度是可變的百分之百延伸)(不管查詢照樣增刪都很慢,被ArrayList替換了)

 

List:獨有的辦法,但凡可以操作角標的辦法都是該系統獨有的辦法



boolean add(int index, E element)
boolean addAll(index,Collection)


 public static void List_add(){
     ArrayList a1 = new ArrayList();
     a1.add("java");
     a1.add("php");//List聚集中的元素可以反復
    a1.add(".net");
     System.out.println("原聚集:"+a1);
     a1.add(1, "Flash");
     a1.add(0, "ps");   
     System.out.println(a1);

    ArrayList a2 = new ArrayList();
    a2.add("javascript");
    a2.add("3dMax");
    a2.add("IBM");

    a1.addAll(0, a2);
    System.out.println(a1);
}


刪除指定地位的元素

 boolean remove(int index)


 public static void List_remove(){
     ArrayList a1 = new ArrayList();
     a1.add("javascript");
     a1.add("php");
     a1.add("flash");
     System.out.println("原聚集:"+a1);

     a1.remove(0);
     System.out.println(a1);
}


修正指定角標的元素  set(int index, E element)  前往的是修正的誰人元素


 public static void List_set() {
     ArrayList a1 = new ArrayList();
     a1.add("javascript");
     a1.add("php");
     a1.add(".net");
     System.out.println("原聚集:"+a1);

     a1.set(1, "falsh");
     System.out.println(a1);
}



get(int index)   前往列表中指定地位的元素
subList(int fromIndex, int toIndex)    前往列表中指定的 fromIndex(包含 )和 toIndex(不包含)之間的部門元素。


 public static void List_get() {
     ArrayList a1 = new ArrayList();
     a1.add("java");
     a1.add("php");
     a1.add("flash");

     System.out.println(a1.get(0));//獲得指定角標的元素,有了該辦法便可以遍歷該聚集中的一切元素

     System.out.println(a1.subList(1, 3));//獲得聚集中某一部門的元素,包括頭不包括尾
}

List聚集獨有的迭代器:ListIterator(是Iterator的子接口)

留意:
在迭代時,是弗成以經由過程聚集對象的辦法操作聚集中的元素
由於會產生ConcurrentModificationException異常(並發異常)
所以,在迭代器時,只能用迭代器的辦法做作元素
由於Iterator辦法是無限的所以只能對元素停止斷定,掏出,刪除的操作
假如想要其他的操作如添加,修正等,就須要應用其子接口,ListIterator
該接口只能經由過程List聚集的listIterator辦法獲得


 public class ListIteratorDemo {
     public static void main(String[] args) {
         ArrayList a1 = new ArrayList();
         a1.add("java01");
         a1.add("java02");
         a1.add("java03");
         a1.add("java04");

         System.out.println("原聚集是:"+a1);

      /*在迭代進程中預備添加或許刪除元素
      Iterator it = al.iterator();
      while (it.hasNext()){
        Object obj = it.next();

        if (obj.equals("java02"))
        //al.add("java008");//會湧現並發異常,由於迭代器正在操作聚集,不克不及再用聚集的辦法操作聚集了
        it.remove();//將java02的援用從聚集中刪除
        System.out.println("obj:"+obj);
        }
        */   

    //只要List的listIterator有增,刪,改,查這些功效,由於只要List有索引
       ListIterator li = a1.listIterator();
          while (li.hasNext()){
          if(li.next().equals("java02"))
          //li.add("java009");
          li.set("java006");
        }  
    }
}

Vector:列舉就是Vector獨有的掏出方法,跟迭代器很像(其實列舉和迭代是一樣的) 曾經被迭代器代替


 public class VectorDemo {
     public static void main(String[] args) {
         Vector v = new Vector();
         v.add("java01");
         v.add("java02");
         v.add("java03");
         v.add("java04");

         for(Enumeration en = v.elements();en.hasMoreElements();){
            System.out.println(en.nextElement());
        }
    }

}

LinkedList:

特無方法:  

addFirst();在頭部添加元素      addLast();在尾部添加元素

getFirst(); getLast(); 獲得元素但不刪除元素。假如聚集中沒有元素,會湧現NoSuchElementException

removeFirst();   removeLast(); 獲得元素然則刪除元素。假如聚集中沒有元素,會湧現NoSuchElementException

在JDK1.6湧現了替換辦法

offerFirst(); offerLast();

peekFirst(); peekLast(); 獲得元素,然則元素不被刪除。假如聚集中沒有元素,會前往null

pollFirst(); pollLast(); 獲得元素,然則元素被刪除。假如聚集中沒有元素,會前往null


 public class LinkedListDemo {
     public static void main(String[] args) {
         LinkedList link = new LinkedList();
         link.add("java01");
         link.add("java02");
         link.add("java03");
         link.add("java04");

         while(!link.isEmpty()){
            System.out.println((link.removeLast()));
        }
    }

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved