java編程思想學習筆記:容器

容器與數組

數組:存儲的基本數據類型/對象,但是數組的尺寸恆定
容器:存放對象Object,可自定義調整自己的尺寸

容器的API類圖

Set中元素無序,但是不能有重複的元素;
List必須按照插入的順序保存元素,元素可重複;
Map存放成對的**“鍵值對”對象**,使用鍵來查找值

在這裏插入圖片描述

Collection接口

collection接口是存放一組對象的方法
方法:

  • int size()
  • boolean isEmpty()
  • boolean add(object element)
  • boolean remove(object element)
  • Iterator iterator()

在移除某個具體對象之時,需要提前判斷該對象是否在容器內,此時需要用到equals方法判斷兩個對象是否相等。
故定義類時需要給出自定義的equals方法。

List接口

  • 實現類:ArrayList
    數組實現,隨機讀取元素,修改時需要移動大量數據

  • 實現類:LinkedList
    鏈表實現,修改元素改變指針即可

方法:

-object get(int index)

  • object set(int index,object element):返回類型爲object,返回的是舊的那個對象
  • object remove(int index):返回的是剛在原來在index位置上的對象
  • void sort(List):對list容器內的元素排序,實現代碼爲Collections.sort(List1);
  • int binarySearch(List,object):對於順序的List容器,採用折半查找的方法查找特定對象

List中的元素可排序,即其存放的對象的類需要實現comparable接口,並且重寫他的compareTo()方法

Set接口

set中元素無序,但是不可以有重複

Iterator接口

  • 迭代器,實現對容器內元素的遍歷操作
  • 方法:在這裏插入圖片描述
  • iterator()來返回一個Iterator
  • next()獲得序列中的下一個元素,通過next()獲得的元素類型爲Object類型,需要強轉成需要的類型
  • hasNext()檢查序列中是否還有元素
  • remove()將迭代過程中刪除元素

Map接口

實現類:HashMap 和TreeMap

  • 存儲鍵值對,鍵值不可重複(鍵、值皆爲對象)
  • 利用hashCode()函數判斷鍵值對是否相等
  • 對基礎對象具有自動打包功能,即自動將int轉換成Integer對象 eg:map1.put(“two”, 2);
  • 同時對基對象也有自動解包功能

方法:

  • void put(key,value)存入該鍵值對
  • Object get(key),返回的其實是value的值即value位置存放的對象

泛型(generic)

  • 定義集合的同時指定集合中對象的類型
  • 例如:List c = new ArrayList();表明List中只可以裝String類型的對象
  • 各方法返回的是<>中指定的對象類型,不需要再次強轉

容器總結:
array讀快改慢,linked改快讀慢,hash介於二者之間

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章