Java集合之LinkedList常見執行個體操作,執行個體說明

來源:互聯網
上載者:User

標籤:調用   element   指定位置   比較   需求   操作   ISE   說明   clear   

一.LinkedList常見操作

package List相關;/** * LinkedList 連結清單 * LinkedList:底層使用的鏈表資料結構。特點:增刪速度快,查詢速度稍慢; */import java.util.Iterator;import java.util.LinkedList;class linkedlist_test {    public static void main(String[] args){        LinkedList linkedlist = new LinkedList();        LinkedList linkedlist1 = new LinkedList();        linkedlist1.add("what");//        linkedlist1.add("zhangj");        /**增*/        System.out.println("------------新增操作------------");        //在尾部進行添加元素        linkedlist.add("what");        linkedlist.add("?");        //在指定位置添加元素        linkedlist.add(1,"now");        System.out.println(linkedlist);        //在列表首位添加元素        linkedlist.addFirst("one");        //在列表尾部添加元素        linkedlist.addLast("last");        //在指定添加元素        linkedlist.addAll(1,linkedlist1);        System.out.println(linkedlist);        /**查*/        System.out.println("------------查詢操作------------");        System.out.println("linkedlist鏈表列表為:"+linkedlist);        //擷取首位元素        Object obj1 = linkedlist.getFirst();        //擷取指定位置的元素        Object obj2 = linkedlist.get(2);        //擷取尾部的元素        Object obj3 = linkedlist.getLast();        //查詢鏈表列表的長度(元素個數)        int a1= linkedlist.size();        System.out.println("首位元素為:"+obj1+";第三個元素為:"+obj2+";尾部元素為:"+obj3+";內部元素個數為:"+a1);        /**修改*/        System.out.println("------------修改操作------------");        System.out.println("修改之前的鏈表列表為:"+linkedlist);        linkedlist.set(1,"what you");        System.out.println("修改之後的鏈表列表為:"+linkedlist);        //遍曆列表        //通過while方式來遍曆        Iterator it1 = linkedlist.listIterator();//        while (it1.hasNext()){//            System.out.println("while:"+it1.next());//        }        //通過for迴圈方式來遍曆        for(;it1.hasNext();){            System.out.println("for:"+it1.next());        }        /**刪         * 在使用remove進行刪除時,在進行刪除操作的同時也會把此次刪除的對象取出來         * remove(intdex int)在進行刪除操作時,若index超出角標邊界,則會拋異常IndexOutOfBoundsException         * 但是在使用poll類型進行操作時,若index超出角標邊界,則會返回null         *         */        System.out.println("------------刪除操作------------");        System.out.println("刪除開始的鏈表列表為:"+linkedlist);        //removeFirstOccurrence,在linkedlist中指定元素第一個出現        linkedlist.add(1,"now");        System.out.println("-----begin-------------"+"linkedlist="+linkedlist);//        linkedlist.removeFirstOccurrence("now");        //removeLastOccurrence,在linkedlist中指定元素第一個出現        linkedlist.removeLastOccurrence("now");        System.out.println("-----end---------------"+"linkedlist="+linkedlist);        //刪除指定元素對象,有指定元素則刪除,無指定元素則不操作,傳回值為Boolean類型        Object obj5 = linkedlist.remove("?");        System.out.println("刪除鏈表列表的元素為:"+obj5);        //刪除指定索引位置的對象        linkedlist.remove(0);        //按索引刪除首位元素,等價於linkedlist.remove(0);        linkedlist.removeFirst();        //按索引刪除尾部元素        Object O = linkedlist.removeLast();        System.out.println(O);        //刪除所有的元素(清空列表)        linkedlist.clear();        //remove和poll刪除方法的比較//        linkedlist.remove(9);        Object obj9=linkedlist.poll();        System.out.println("obj9="+obj9);        System.out.println("刪除結束的鏈表列表為:"+linkedlist);//其他方法簡介,不作說明//        E peek()//        檢索但不刪除此列表的頭(第一個元素)。//        E peekFirst()//        檢索但不刪除此列表的第一個元素,如果此列表為空白,則返回 null 。//        E peekLast()//        檢索但不刪除此列表的最後一個元素,如果此列表為空白,則返回 null 。//        E poll()//        檢索並刪除此列表的頭(第一個元素)。//        E pollFirst()//        檢索並刪除此列表的第一個元素,如果此列表為空白,則返回 null 。//        E pollLast()//        檢索並刪除此列表的最後一個元素,如果此列表為空白,則返回 null 。//        E pop()//        從此列表表示的堆棧中彈出一個元素。    }}

二.一個實際中操作
概念簡單說明:
棧堆:元素先進後出,類似水杯裝水;
隊列:元素先進先出,類似水管輸水;
需求:實現一個類型棧堆或隊列的功能容器
1.封裝一個類似類型棧堆或隊列的功能容器

import java.util.LinkedList;public class linkedlist_test1 {    /*實作類別似棧堆或隊列功能的容器*/    private LinkedList linkedlist;    //建構函式,一開始就產生一個鏈表隊列linkedlist    linkedlist_test1(){        linkedlist = new LinkedList();    }    //定義向鏈表隊列添加元素的功能    public void addElement(Object obj){        linkedlist.add(obj);    }    //定義一個類似棧堆功能(先進後出)    public Object ZhanDui(){        return linkedlist.removeFirst();    }    //定義一個類似隊列功能(先進先出)    public Object DuiLie(){        return linkedlist.removeLast();    }    //定義一個判斷linkedlsit是否為空白的功能    public boolean isNull(){        return  linkedlist.isEmpty();    }

2.調用封裝好的類

public class Tset{public static void main(String[] args){        linkedlist_test1 test = new linkedlist_test1();        String array[] = {"what","you","want"};        test.addElement(1);        test.addElement("you");        test.addElement("and");        test.addElement(array);        //棧堆功能//        while (!test.isNull()){//            System.out.println(test.DuiLie());//        }        //隊列功能        for(;!test.isNull();){            System.out.println(test.ZhanDui());        }    }}

Java集合之LinkedList常見執行個體操作,執行個體說明

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.