總網頁瀏覽量

2013年3月12日 星期二

容器物件:Collection



Collection:是一個容器物件,功能和陣列很相似。容器物件裡面可以放多個物件。也有一說collection是動態陣列,透過物件儲存物件。
clllection裡面放的東西都是物件,如果存放基本型別會先autoboxing成對應的物件,放入的物件還會自動轉型成Object類型。
Collection在java中是介面,由List、Set兩個容器物件(也是介面)所繼承。

一、Set:set裡面物件唯一不重複,存放次序由系統自己給定。set也是介面,透過底下的HashSet來實作。

import java.util.*;
//使用collection,必須import java.util.*;
class Human {

    int age = 1;
    int height = 111;

    public void speak() {
        System.out.println("hahaha");

    }
}

public class set {

    public static void main(String[] args) {
        Set set1 = new HashSet();//透過HashSet來實作Set介面
        set1.add("conan");//將""conan物件加入set裡面
        set1.add("Blue");
        set1.add(new Integer(44));//必須將基本型態boxing為物件
        set1.add(new Integer(44));
        set1.add(new Integer(99));
        set1.add(new Double(3.14));
        set1.add(new Human());
        System.out.println("set1=" + set1);
 

Iterator it = set1.iterator();//利用Iterator一一列印物件
while(it.hasNext()){
Object o = it.next();
System.out.print(o+" ");

 }
}

執行結果:可以看到物件排列順序與存放先後時間不一樣,而且物件不重複
set1=[3.14, Blue, 99, conan, collections.Human@78f77c8e, 44]


二、List
List裡面存放的物件可以重複,物件存放順序由add()先後時間來排列。List也是介面,繼承自Collection。List透過底下的ArrayList與LinkedList實作。

1.ArrayList:以陣列實作list。要實作陣列裡面的物件插入與刪除,效能不是那麼好
.remove("物件")//清除特定物件
.clear()//清空list

 List list1 = new ArrayList();//實作List介面
        list1.add("DarkMagician");
        list1.add("Blue eyses");
        list1.add("DarkMagician");
        list1.add(new Integer(33));
        list1.add(new Double(44.4));
        list1.add(new Integer(33));
        System.out.println(list1);


list1.remove("DarkMagicin"); //將物件從Arraylist移除
       for(int i=0;i<list1.size();i++){
        System.out.println(list1.get(i));//list1.get(i)根據序號,列印物件
     
        }
/*或者
        for(Object obj1:list1){//列印單筆物件的foreach寫法
        System.out.println(obj1);
        }


*/



執行結果:  可以看到存放順序以add()時間先後排列

[DarkMagician, Blue eyses, DarkMagician, 33, 44.4, 33]
Blue eyses,DarkMagician,33,44.4,33,DarkMagician

沒有留言:

張貼留言