1. 程式人生 > >泛型及內部類

泛型及內部類

泛型    java1.5之後出現的新特性


Iterator iteratort():返回用於遍歷集合的迭代器


ArrayList和Vector的比較
ArrayList在java1.2版本以後採用了變長陣列演算法實現,執行緒不安全,
效率高速度快
Vector在java1.0版本,底層也是採用了變長演算法實現,執行緒安全,
效率較低,實現了List介面
ArrayList和LinkedList的比較
LinkedList是採用雙向連結串列的結構實現的       更適合頻繁的增刪操作
ArrayList是採用變長陣列演算法實現的              更適合查詢資料


新迴圈:增強for迴圈(for each)  java1.5之後推出的新特性
語法:
for(元素型別  e : 集合或者陣列){
迴圈體
}
新迴圈有別於傳統迴圈,其出現的目的是簡化遍歷集合或者陣列的


佇列:Queue
佇列也是用來儲存一組資料,但是有別於陣列和集合,佇列存取元素必須
遵循先進先出的原則(FIFO)


LinkedList具有存取效率高的特點,所以java使用該類作為佇列的實現類使用


佇列的遍歷是一次性的,想要獲取佇列中的某個元素,就必須先將佇列中該元素
之前的所有元素從佇列中取出後才能使用和訪問


佇列的相關方法:
boolean offer(E e)
向佇列末尾追加新元素(入隊)


E poll()
獲取並從佇列中刪除隊首元素(出隊)


E peek()
僅獲取隊首元素,但不將其從佇列中移除


雙端佇列   Deque
所謂的雙端佇列:佇列兩端都可以出隊入隊


當我們使用雙端佇列存取元素時,只從一側操作時,就形成一種存取模式:先進後出
就形成了經典的資料結構:棧,使用棧是為了操作具有可追溯性,通常我們實現
某個操作有後退功能時,常使用棧


Comparable介面:該介面的實現類是可比較的
實現該介面必須重寫其中的一個方法
public interface Comparable{
public int compareTo(T t);
}


compareTo方法的返回值:
返回的整數不關心具體的值是多少,關注的是取值範圍
當返回值>0:當前物件比給定物件大
當返回值<0:當前物件比給定物件小
當返回值=0:當前物件與給定物件相等


集合的排序:Collections是集合的工具類


Comparator介面
比較工具,用於臨時定義比較規則,不是預設規則


內部類:
1.根據位置的不同,java內部類分為4種
1)靜態內部類
  a.使用static修飾,宣告在類體中
  b.靜態內部類可以訪問外部類的靜態成員
2)成員內部類
  a.宣告在類體中,不使用static,具有類的成員特徵,也就是說,必須有
     類的例項才能建立內部類例項
  b.內部類例項可以訪問共享外部類的成員變數
3)區域性內部類
  
4)匿名內部類