07.集合和泛型

一.集合框架概述

Java集合框架都位於Java.util包中java

Java集合框架能夠包含三大塊內容,對外接口,接口的實現,對集合運算的算法算法

Set、List和Map能夠看作集合的三大類:

List集合是有序集合,集合中的元素能夠重複,訪問集合中的元素能夠根據元素的索引來訪問。編程

Set集合是無序集合,集合中的元素不能夠重複,訪問集合中的元素只能根據元素自己來訪問。數組

Map集合中保存Key-value對形式的元素,訪問時只能根據每項元素的key來訪問其value。框架

接口

表示集合的抽象數據類型,例如Collection,List,Set,Map等工具

實現

集合框架中的接口具體實現,例如ArrayList,HashSet,HashMap等this

算法

在實現了集合框架接口的對象身上完成計算的方法。Java提供了集合框架的工具類Collections,它實現了對集合排序的多種算法。code

二.List接口

ArrayList對數組進行了封裝,實現了可變長數組,採用和數組相同的儲存方法。對象

LinkedList採用鏈表儲存方式。blog

ArrayList

import Java.util.List;
import java.util.ArrayList;
puoblic class ListDemo{
	public static void main(String [] args){
        List list = new ArrayList();
		for(int i=0;i<3;i++){
			list.add("Hello");
		}
		String a = (String)list.get(0);
	}
}
//List集合定義時不須要指定大小,也不用指定集合中保存的數據類型
//List接口的add(Object o)方法的參數類型爲Object,即便調用時傳入其餘類型,但系統認爲是Object類型,因此用get方法獲取元素是必須進行強制類型轉換
//獲取List集合的元素時使用get方法並傳入下標,而後強制轉化爲實際類型
//使用remove,contains,indexOf等方法時應該重寫類的equals方法

三.迭代器iterator

全部集合接口和類都沒有提供相應都遍歷方法,而是把遍歷交給迭代器Iterator完成。它隱藏了各類集合實現類的內部細節,提供了遍歷集合的統一編程接口。

Collection接口的iterator()方法返回一個Iterator。

//Iterator接口兩個方法
boolean hasNext()//判斷是否存在另外一個可訪問的元素
Object next()//返回要訪問的下一個元素

四.泛型集合

泛型有效的解決了上面提到的集合的add()方法的弊端,使用泛型集合在建立集合對象時指定集合中元素的類型,從集合中取出元素時無需進行強制類型轉換,而且若是把非指定類型對象放入集合,會出現編譯錯誤。

import java.util.ArrayList;
import java.util.List;

public class m1 {
    public static void main(String [] args){
        Student stu1 = new Student("Tom",10);
        Student stu2 = new Student("Aim",11);
        //泛型集合
        List<Student> list = new ArrayList<Student>();
        list.add(stu1);
        list.add(stu2);
        //get()方法不須要再強制類型轉換
        Student student = list.get(1);
        System.out.println("學生2:" + student.getName() + "\t" + student.getAge());
    }

}
class Student{
    String name;
    int age;
    public String getName(){
        return name;
    }
    public int getAge(){
        return age;
    }
    public Student(String name,int age){
        this.name = name;
        this.age = age;
    }
}
相關文章
相關標籤/搜索