所謂集合指的就是一套動態物件陣列,在實際開發中陣列的概念的一定會使用的,但是陣列的問題是一旦開闢空間則長度不可改變
其實就是對資料結構的一種封裝,使用者不用去編寫,直接使用。 由於資料結構開發起來比較困難,還必須考慮效能問題
3.1 集合中需要掌握的核心介面
collection list set map iterator (了解) enumeration queue
3.2 list介面
list介面的定義:
public inte***celistextends
collection
通過觀察list介面的定義其繼承的是collection 介面
通過觀察介面之間的關係,可以得出上圖
觀察collection常用方法
1 public boolean add(ee)
;
增加元素到集合
2 public
boolean addall(
collection
extends
e> c)
;存放乙個集合
3 public
boolean contains(
objecto);
查詢集合中的元素
4 public
boolean isempty()
;判斷乙個集合是否為空
5 public
boolean remove(
object
o)刪除乙個集合中的元素
6 public
int size()
; 返回集合中的長度 觀察
list
介面中的方法
list
擴充套件collection
中的方法
1public
eget(int index)
;根據指定索引取得元素
2 public
eset(int index,
eelement) ;
替換元素,
index
要替換元素下標
element
要替換的元素
3 public
listiterator
<
e> listiterator()
list
自己的迭代器
list
介面的特點:
可重複的,
有序的
使用list list
本身是乙個介面,如果想要使用乙個介面則可以使用該介面的實現類完成
list
下面的實現類:
需要掌握的實現類
:arraylist lindkedlist vector
範例:使用list 介面
publicstaticvoidmain(string
args
) }
通過使用
arraylist
發現其特點是
可重複的,並且有序的,順序就儲存時候的順序
通過乙個
add
增加元素到集合
通過get(index)
取出集合中的元素
下標的位置從0開始
觀察其中的一些其他的操作方法: 1
判斷集合是否為空
pulic boolean isempty(); 2
取得集合中的長度
pulic int size(); 3
刪除集合中的元素
public boolean remove(object obj);
publicstaticvoidmain(string
args)
通過觀察原始碼發現
arraylist
是乙個物件陣列
,每次增加的時候
會為陣列擴容,陣列長度是不能改變的,每次擴容陣列內容拷貝的工作
,arraylist
如果頻繁增加內容,效率不高,
但是查詢的時候由於底層使用的是陣列,所以查詢效率會高
面試題:
arraylist
儲存自定義類:
首先觀察使用系統自定義的類完成
arraylist
類的新增
publicstaticvoidmain(string
args)
} 以上使用的類
為系統自定義的
string
類其類功能已經非常完善了,現在使用使用者自定義的類完成
arraylist
的新增
範例:實現自定義類
packageorg.list;
publicclassperson
publicstring getname()
publicvoidsetname(string
name)
publicintgetage()
publicvoidsetage(intage)
@override
//new person("
張三",20)
publicbooleanequals(object
obj)
// this
當前的物件
person
和 傳進來的
person
比較if(this==
per)
if(this.
age==
per.
age&&this.
name
.equals(
per.
name
))
returnfalse; }
} 通過**,發現自定義類的時候,必須覆寫
equals
方法才能完成集合中
物件查詢和刪除,主要原因是在於進行物件刪除或者查詢的時候
集合中會判斷傳入的元素和集合本身的元素是否是內容相同的元素
只有相同才會刪除或者查詢
JAVA複習5(集合 拓展 單向鍊錶)
擴充套件 實現單向鍊錶 鍊錶其實就是一種順序儲存的資料結構,乙個節點上存在兩個屬性 資料 指向下乙個節點的指標 對於鍊錶的操作,其實就是一組操作標準 1 增加元素 2 刪除元素 3 判斷鍊錶是否為空 3 返回鍊錶中的長度 既然以上的操作定義為標準,則可以抽象為介面 鍊錶類直接實現該介面中的標準 實現...
複習七(集合)
判斷內容是否存在 集合名.contains 內容 有返回true linkedlist方法 addfirst 內容 新增第乙個內容 addlast 內容 新增最後乙個內容 getfirst 返回列表第乙個元素 getlast 返回列表最後乙個元素 removefirst 刪除第乙個元素 remove...
2020 7 25集合複習小結
答 分為三種集合 list set map list arraylist linkedlist vector set hashset linkedhashset treeset map hashmap hashtable linkedhashmap treemap properties proper...