天天看點

java進階01Java進階總結01

Java進階總結01

主要内容

1.Object類

定義:java語言的根類,所有類的父類。隻要類沒有指定父類,
則預設繼承Object類
Object類所包含的方法有:
clone()建立并傳回此對象的一個副本。 
equals(Object obj) 訓示其他某個對象是否與此對象“相等”。
getClass() 傳回此 Object 的運作時類。
hashCode() 傳回該對象的哈希碼值。
notify() 喚醒在此對象螢幕上等待的單個線程。
notifyAll()喚醒在此對象螢幕上等待的所有線程。
toString()傳回該對象的字元串表示。
wait() 在其他線程調用此對象的notify() 方法或 notifyAll() 方法前,導緻
目前線程等待。
wait(long timeout)在其他線程調用此對象的 notify() 方法或 notifyAll() 方
法,或者超過指定的時間量前,導緻目前線程等待。
wait(long timeout, int nanos) 在其他線程調用此對象的 notify() 
方法或 notifyAll() 方法,或者其他某個線程中斷目前線程,或者
已超過某個實際時間量前,導緻目前線程等待.   
           

2.System類##

概要:提供了大量的靜态方法,可以擷取與系統相關的資訊或系統級操作
導包:java.lang.System
常見的方法有:
arraycopy(源數組, 源數組索引起始位置,目标數組,目标數組索引起始位置,
複制元素個數) 從指定源數組中複制一個數組,複制從指定的位置開始,
到目标數組的指定位置結束。
currentTimeMillis() 傳回以毫秒為機關的目前時間。
identityHashCode(Object x) 傳回給定對象的哈希碼
           

3.StringBuilder類##

概述:StringBuilder是個字元串的緩沖區,即它是一個容器,容器中可以裝很多
字元串。并且能夠對其中的字元串進行各種操作。它的内部擁有一個數組用來
存放字元串内容,進行字元串拼接時,直接在數組中加入新内容。StringBuilder
會自動維護數組的擴容。
導包:java.lang.StringBuilder
構造方法:
public StringBuilder() :構造一個空的StringBuilder容器。
public StringBuilder(String str) :構造一個StringBuilder容器,并将
字元串添加進去。
常見的方法:
public StringBuilder append(...) :添加任意類型資料的字元串形式,并
傳回目前對象自身。
public String toString() :将目前StringBuilder對象轉換為String對象。
           

4.Collection集合##

集合:集合是java中提供的一種容器,可以用來存儲多個資料。
集合與數組的差別:
1.數組的長度是固定的。集合的長度是可變的。
2.數組中存儲的是同一類型的元素,可以存儲基本資料類型值。集合存儲的都是
對象。而且對象的類型可以不一緻。
           
  • 集合的整體分布圖
    java進階01Java進階總結01
常見的方法:
public boolean add(E e) : 把給定的對象添加到目前集合中 。
public void clear() :清空集合中所有的元素。
public boolean remove(E e) : 把給定的對象在目前集合中删除。
public boolean contains(E e) : 判斷目前集合中是否包含給定的對象。
public boolean isEmpty() : 判斷目前集合是否為空。
public int size() : 傳回集合中元素的個數。
public Object[] toArray() : 把集合中的元素,存儲到數組中。
</pre>
<pre>
//        建立集合,多态方式進結集合建立
        Collection<String> co = new ArrayList<String>();
//        添加元素
        co.add("1");
        co.add("2");
        co.add("3");
        co.add("4");
        System.out.println(co);     //[1, 2, 3, 4]
//       判定集合中是否包含該元素
        System.out.println(co.contains("1"));   // ture
        System.out.println(co.contains("5"));   //false
//        移除集合中的元素
        co.remove("1");
        System.out.println(co);     //[2, 3, 4]
//        顯示集合元素的個數
        System.out.println(co.size());      //3
        清空集合中的所有元素
//        co.clear();
//        System.out.println(co);     //[]
      判定集合是否為空
//        System.out.println(co.isEmpty());   //true
//        集合轉換為數組
     Object[] abc = co.toArray();
           

5.Iterator接口##

概述:用于疊代通路(周遊)元素,内部采用指針的方式來跟蹤集合中的元素。
public Iterator iterator() : 擷取集合對應的疊代器,用來周遊集合中
的元素的。
public E next() :傳回疊代的下一個元素。
public boolean hasNext() :如果仍有元素可以疊代,則傳回 true。

        Collection<String> cod = new ArrayList<String>();
//        添加元素
        cod.add("1");
        cod.add("2");
        cod.add("3");
        cod.add("4");
        System.out.println(cod);
//        擷取集合對應的疊代器
        Iterator<String> it = cod.iterator();
        while (it.hasNext()){   //判斷是否有疊代的元素
            String s = it.next();   //擷取疊代出的元素
            System.out.println(s);
  }
           

6.常見的資料結構##

  • 資料儲存常見結構:棧、隊列、數組、連結清單和紅黑樹
  • 棧:stack,又稱堆棧,它是運算受限的線性表,其限制是僅允許在标的一端進行插入和删除操作,不允許在其他任何位置進行添加、查找、删除等操作。
特點:先進後出,棧的入口、出口的都是棧的頂端位置。
壓棧:就是存元素。即,把元素存儲到棧的頂端位置,棧中已有元素依次向棧底方
向移動一個位置。
彈棧:就是取元素。即,把棧的頂端位置元素取出,棧中已有元素依次向棧頂方向
移動一個位置。
           
  • 隊列:queue,又稱堆棧,它同堆棧一樣,也是一種運算受限的線性表,其限制是僅允許在表的一端進行插入,而在表的另一端進行删除。
特點:先進先出,隊列的入口、出口各占一側。
           
  • 數組:Arry,有序的元素序列,數組是在記憶體中開辟一段連續的空間,并在此空間存放元素。
特點:查找元素快:通過索引,可以快速通路指定位置的元素
增删元素慢:需要建立新數組,再把原數組中的元素複制到新數組中。
           
  • 連結清單:linked list,由一系列結點node(連結清單中每一個元素稱為結點)組成,結點可以在運作時i動态生成。每個結點包括兩個部分:一個是存儲資料元素的資料域,另一個是存儲下一個結點位址的指針域。
特點:多個結點之間,通過位址進行連接配接。查找元素慢,增删元素快
           
  • 紅黑樹:binary tree,是每個結點不超過2的有序樹。
  • 二叉樹是每個節點最多有兩個子樹的樹結構。頂上的叫根結點,兩邊被稱作“左子樹”和“右子樹”。
特點:速度特别快,趨近平衡樹,查找葉子元素最少和最多次數不多于二倍
           
java進階01Java進階總結01

7.List集合##

  • 概要:繼承Collection接口,允許出現重複的元素,元素以線性方式儲存,有序儲存,存入存出的順序一緻。
List接口特點:
1. 它是一個元素存取有序的集合。
2. 它是一個帶有索引的集合。
3. 集合中可以有重複的元素。
List接口常見方法:
public void add(int index, E element) : 将指定的元素,添加到該集合中的
指定位置上。
public E get(int index) :傳回集合中指定位置的元素。
public E remove(int index) : 移除清單中指定位置的元素, 傳回的是被移除
的元素。
public E set(int index, E element) :用指定元素替換集合中指定位置的元素
,傳回值的更新前的元素。
</pre>
## 8.List的子類##
* **ArrayList集合**
<pre>
概要:集合資料存儲的結構是數組結構。
</pre>
* **LinkedList集合**
<pre>
概要:集合資料存儲的結構是連結清單結構。
常見的方法:
public void addFirst(E e) :将指定元素插入此清單的開頭。
public void addLast(E e) :将指定元素添加到此清單的結尾。
public E getFirst() :傳回此清單的第一個元素。
public E getLast() :傳回此清單的最後一個元素。
public E removeFirst() :移除并傳回此清單的第一個元素。
public E removeLast() :移除并傳回此清單的最後一個元素。
public E pop() :從此清單所表示的堆棧處彈出一個元素。
public void push(E e) :将元素推入此清單所表示的堆棧。
public boolean isEmpty() :如果清單不包含元素,則傳回true。
           

9.set集合##

  • 概要:繼承Collection接口,Set接口中元素無序,并且都會以某種規則保證存入的元素不出現重複
  • HadhSet集合
HashSet集合概要:元素不可重複,元素無序
根據對象的哈希值來确定元素在集合中的存儲位置,具有良好的存取和查找性能。
保證元素唯一性的方式依賴于: hashCode 與equals 方法。
           
  • HashSet集合儲存資料結構:采用哈希表(數組+連結清單+紅黑樹)
    java進階01Java進階總結01
  • LinkedHashSet
  • 概要:HashSet子類中的連結清單和哈希表組合的一個資料存儲結構

10.Collections##

  • 概要:集合工具類,用來對集合進行操作。
常見的方法:
public static <T> boolean addAll(Collection<T> c, T... elements) :
往集合中添加一些元素。
public static void shuffle(List<?> list) 打亂順序:打亂集合順序。
public static <T> void sort(List<T> list) :
将集合中元素按照預設規則排序。
public static <T> void sort(List<T> list,Comparator<? super T> ) :
将集合中元素按照指定規則排序。
d shuffle(List<?> list) 打亂順序:打亂集合順序。
public static <T> void sort(List<T> list) :
将集合中元素按照預設規則排序。
public static <T> void sort(List<T> list,Comparator<? super T> ) :
将集合中元素按照指定規則排序。
           

繼續閱讀