1. 程式人生 > >ACCP8.0 java課程第二學期-關於集合框架

ACCP8.0 java課程第二學期-關於集合框架

int 包裝類 個數 rgs 包括 字母 efi double ast

本章重點
  掌握ArrayList LinkedList HashMap與泛型集合

本章難點
  泛型的理解

一 關於集合
1)如果寫程序時不知道運行時需要多少對象,或者需要更復雜的方式存儲對象時,考慮使用集合它位於java.util包下
2)集合框架包含接口,實現類,和相關算法
3)Collection接口存儲一組不唯一,無序的對象
4)Set接口繼承Collection接口,存儲一組唯一無序的對象
5)List接口繼承Collection接口,存儲一組不唯一有序的對象
6)Map接口存儲一組鍵值對的對象,key不能重復,value可以重復
7)Iterator接口是負責定義訪問和遍歷元素的接口

二 ArrayList與LinkedList
1)ArrayList是對數組進行了封裝,實現長度可變的數組,優點是訪問元素效率比較高
2)LinkedList是內部數據結構是鏈表,在操作元素上效率比較高,對於訪問元素效率低於ArrayList
3)註意ArrayList在移除元素時,會重新改變內部元素的位置
4)ArrayList常用方法:
boolean add(Object o);//索引從0開始
void add(int index,Object o)//必須在0和元素列表個數之間
int size();//返回集合列表中元素個數
boolean contains(Object o);//判斷列表是否包含某一個元素
Object get(int index);//獲取指定位置的元素
boolean remove(Object o);//移除元素
Object remove(int index);//移除指定位置的元素
boolean retainAll(Collection<?> c);//保留集合的共有元素

package org.lyrk.accp8.s2.chapter.ch06;

import java.util.*;

/**
 * Created by niechen on 17/5/25.
 */
public class Main {

    public static void main(String[] args) {
        //ListIterator listIterator =
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(
2); list.add(3); int size = list.size(); //註意代碼此處會報錯,因為移除元素後內部數據會發生變化 for (int i = 0; i < size; i++) { list.remove(i); }
list.add(5,3);//此處會報錯,註意插入位置
      } }



5)LinkedList常用方法:
void addFirst(Object o);//在列表的首部添加元素
void addLast(Object o);//在列表的末尾添加元素
Object getFirst();//返回列表中第一個元素
Object getLast();//返回列表中的最後一個元素
Object removeFirst();//刪除並返回列表中的第一個元素
Object removeLast();//刪除並返回列表中的最後一個元素

三.HashMap與HashTable(面試題)
1) HashMap繼承自AbstractMap類,HashTable繼承自Dictionary類
2) HashTable線程安全的,HashMap非線程安全
3) HashTable不允許null值(包括key與value),HashMap則可以
4)HashMap常用方法:
int size();//集合內的個數
boolean containsKey(Object key);//是否包含key
boolean containsValue(Object value);//是否包含對應的值
V get(Object key);//根據key獲取value
V put(K key, V value);//向map集合裏添加元素
V remove(Object key);//根據鍵移除元素
Set<Map.Entry<K, V>> entrySet();//遍歷Map時使用此方法效率高

四.關於Iterator
1) Iterator主要用於遍歷集合元素時用,一般情況下實現Collection接口的可以直接用iterator()方法拿到叠代器對象
2) 常用方法:boolean hasNext();//判斷是否有下一個元素
Object next();//返回下個元素

五.Set集合
1)Set集合不可重復且沒有順序,因此可以用於去除集合中重復元素
2)Set集合可以用Iterator和增強for循環進行遍歷

六.關於泛型
1)泛型可以限制集合的類型,增強安全性。
2)泛型可以定義一個模板
3)方法中的泛型

七.關於基本類型的包裝類
1)基本類型都有其對應的包裝類型,簡單理解就是將基本類型包裝成對象,因此他們就有相應的屬性和方法
2) 通常情況下,基本類型的首字母大寫就變成其包裝類,char,int類型除外
3) int->Integer double->Double float->Float short->Short boolean->Boolean long->Long
char->Character byte->Byte


ACCP8.0 java課程第二學期-關於集合框架