JAVA學習筆記(二十)- 集合 List,java學習筆記

來源:互聯網
上載者:User

JAVA學習筆記(二十)- 集合 List,java學習筆記
ArrayList 集合

/* * ArrayList,實現List介面 * 聲明數組時必須指定數組中元素的類型,可以是基礎資料型別 (Elementary Data Type),也可以是引用資料類型 * 聲明集合時可以不指定其元素的類型,元素類型預設為Object類型 */public class Test01{    public static void main(String[] args)    {        // 建立一個ArrayList集合        ArrayList list = new ArrayList();        // 添加元素        list.add("tom");        list.add(25);        list.add(12.4);        list.add(true);        list.add(new Student());        list.add("tom");// List集合中的元素特點:有序、允許重複        list.add(1, "alice");        // list.add(20, 250);        list.add(null);        // 修改元素        list.set(0, "mike");        // 刪除元素        list.remove(1);        list.remove("tom");        list.remove(new Integer(25));        // list.clear();//清空集合中的元素        // 擷取集合中的元素        /*         * Object obj=list.get(2);//get()方法返回一個Object boolean flag=(Boolean)         * obj;         */        boolean flag = (Boolean) list.get(2);        System.out.println("集合中索引為2的元素:" + flag);        // 判斷集合中是否包括指定的元素        System.out.println("tom安在?" + list.contains("tom"));        System.out.println("集合是否為空白:" + list.isEmpty());        System.out.println("mike在集合中的索引:" + list.indexOf("mike"));        System.out.println("元素個數:" + list.size());        // 迴圈遍曆集合中的元素        for (int i = 0; i < list.size(); i++)        {            System.out.println(list.get(i));// 通過get()方法擷取集合中的元素        }        // 將集合轉換為數組        Object[] objs = list.toArray();        System.out.println("數組中的元素:"+Arrays.toString(objs));    }}
ArrayList集合執行個體
/* * ArrayList */public class Test02{    public static void main(String[] args)    {        // 建立儲存狗狗資訊的集合        List list = new ArrayList();        Dog dog1 = new Dog("旺財", "大狼狗", 2);        Dog dog2 = new Dog("黑子", "拉布拉多", 1);        Dog dog3 = new Dog("小美", "雪娜瑞", 5);        // 將狗狗對象添加到集合中        list.add(dog1);        list.add(dog2);        list.add(dog3);        // 查詢狗狗的數量        System.out.println("共有" + list.size() + "條狗狗!");        System.out.println("分別為:");        for (Object obj : list)//使用foreach迴圈遍曆集合        {            Dog dog = (Dog) obj;// 集合中元素類型預設為Object,需要強轉            System.out.println(dog.getName() + "," + dog.getBrand() + ","                    + dog.getAge());        }    }}/* * Dog類 */class Dog{    private String name;    private String brand;    private int age;    public Dog(String name, String brand, int age)    {        super();        this.name = name;        this.brand = brand;        this.age = age;    }    public String getName()    {        return name;    }    public void setName(String name)    {        this.name = name;    }    public String getBrand()    {        return brand;    }    public void setBrand(String brand)    {        this.brand = brand;    }    public int getAge()    {        return age;    }    public void setAge(int age)    {        this.age = age;    }}
Vectory 集合
/* * Vectory,用法與ArrayList類似,其是安全執行緒的,但效率效能不如ArrayList * 已淘汰,不建議使用 */public class Test03{    public static void main(String[] args)    {        // 建立一個Vector集合        Vector v = new Vector();        v.add(100);        v.add(new Double(6.5));        v.add(new Date());        v.add("hello");        v.add(new String("world"));        System.out.println("元素個數:" + v.size());        /*         * 遍曆集合方法         */        // 方法一        System.out.println("********方法一*******");        for (int i = 0; i < v.size(); i++)        {            System.out.println(v.get(i));        }        // 方法二        System.out.println("********方法二*******");        for (Object obj : v)        {            System.out.println(obj);        }        // 方法三:使用Enumeration迭代,適用於Vector、HashTable、Properties等集合,已淘汰        System.out.println("********方法三*******");        Enumeration e=v.elements();//調用Vector的elements()方法,返回一個Enumeration執行個體        while(e.hasMoreElements()){//調用Enumeration的hasMoreElements()方法判斷是否有元素            Object obj=e.nextElement();//調用Enumeration的nextElement()方法擷取當前元素            System.out.println(obj);        }        //直接輸出集合        System.out.println(v);    }}
Stack棧
import java.util.Stack;/* * Stack棧,繼承自Vector */public class Test04{    public static void main(String[] args)    {        // 建立一個空堆棧        Stack stack = new Stack();        // 入棧        stack.push("tom");        stack.push("jack");        stack.push("alice");        // 出棧        System.out.println(stack.pop());    }}
LinkedList集合
import java.util.LinkedList;/* * LinkedList,實現List介面,鏈表格儲存體,頻繁添加、修改或刪除時效率更高 */public class Test05{    public static void main(String[] args)    {        // 建立一個LinkedList集合        LinkedList list = new LinkedList();        list.add("itany");        list.add(12);        list.add(new Double(12.5));        list.add(0, "趙信");        list.addFirst("蓋倫");        list.addLast("寒冰");        System.out.println("索引為2的元素:" + list.get(2));        System.out.println("第一個元素:" + list.getFirst());        System.out.println("第一個元素:" + list.get(0));        System.out.println("最後一個元素:" + list.getLast());        System.out.println("最後一個元素:" + list.get(list.size() - 1));        System.out.println("集合中的元素:" + list);        list.removeFirst();        list.removeLast();        System.out.println("集合中的元素:" + list);    }}
ArrayLis、Vector、LinkedList效能對比
import java.util.ArrayList;import java.util.LinkedList;import java.util.Vector;/* * ArrayLis、Vector、LinkedList效能對比 */public class Test06{    public static void main(String[] args)    {        ArrayList al = new ArrayList();        Vector v = new Vector();        LinkedList ll = new LinkedList();        // 測試ArrayList效能        long time1 = System.currentTimeMillis();// 擷取執行前的毫秒數        for (int i = 1; i < 100000; i++)        {            al.add(0, i);        }        long time2 = System.currentTimeMillis();// 擷取執行後的毫秒數        System.out.println("ArrayList花費的時間:" + (time2 - time1));        // 測試Vector效能        long time3 = System.currentTimeMillis();        for (int i = 1; i < 100000; i++)        {            v.add(0, i);        }        long time4 = System.currentTimeMillis();        System.out.println("Vector花費的時間:" + (time4 - time3));        // 測試LinkedList效能        long time5 = System.currentTimeMillis();        for (int i = 1; i < 100000; i++)        {            ll.addFirst(i);        }        long time6 = System.currentTimeMillis();        System.out.println("LinkedList花費的時間:" + (time6 - time5));    }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.