<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. java語言

    java list的用法詳解

    時間:2025-01-23 19:52:59 java語言 我要投稿
    • 相關推薦

    java list的用法詳解

      java中可變數組的原理就是不斷的創建新的數組,將原數組加到新的數組中。以下是百分網小編搜索整理的關于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()));

      }

      }

      }


    【java list的用法詳解】相關文章:

    PHP中list方法用法示例10-13

    C語言for語句用法詳解10-30

    英語代詞的幾種用法詳解07-12

    C語言指針用法詳解08-21

    java回調函數詳解11-02

    常用Java排序算法詳解09-17

    Java不可變類型的詳解09-10

    Java中Class對象詳解09-03

    JAVA中toString方法詳解11-03

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人