慕課網學習之Java集合框架

2021-08-04 04:49:13 字數 3749 閱讀 7146

首先說一下我對集合的認識,集合就相當於是乙個陣列,而這個陣列的元素型別是可以自己定義的,某個特定的集合有一些特殊的特點,長度是動態變化的,這點相對於陣列長度是固定的要好。

集合的作用:

1.在類的內部,對資料進行組織;

2.簡單而快速地搜尋大量數量的條目;

3.有的集合介面,提供了一系列排列有序的元素,並且可以在序列中間快速地插入或者刪除有關元素;

4.有的集合介面,提供了對映關係,可以通過關鍵字(可以)去快速查詢到對應的唯一物件,而這個關鍵字可以使任意型別。

集合的長度:可以動態變化。

集合的組成:

collection介面

是list,set和queue介面的父介面,list,set和queue是介面不能直接例項化

定義了可用於操作list,set和queue的方法--增刪改查

list介面及其實現類--arrylist

1. list是元素有序並且可以重複的集合,被稱為序列

2.list可以精確的控制每個元素的插入位置,或刪除某個位置元素

3.arraylist--陣列序列,是list的乙個重要實現類

4.arraylist底層是由陣列實現的

5.使用

(1)建立

list lt=new arraylist();//list是介面不能直接例項化,所以要用它的子類進行例項化

(2)新增元素

lt.add(元素);//新增乙個元素

lt.add(index,元素);//在index位置新增乙個元素

lt.addall(元素);//新增乙個元素陣列

例:course course=;

coursestoselect.addall(arrays.aslist(course));//public list coursestoselect,所以把陣列轉化為list

lt.addall(index,元素)//在index位置上新增乙個元素陣列

例:course course2=;

coursestoselect.addall(2,arrays.aslist(course2));

6.查詢

得到list的長度:int size=coursestoselect.size();

遍歷這個list可以用for迴圈乙個乙個的遍歷:

for(int i=0;i通過迭代器遍歷:

iterator it=coursestoselect.iterator();

system.out.println("通過迭代器訪問:");

while(it.hasnext())

通過for each遍歷

for(object obj:coursestoselect)

7.修改

coursestoselect.set(0, new course("7","毛概"));//把0位置上的元素改為 course("7","毛概")

8.刪除

以某個元素為依據進行刪除:

course cr=(course)coursestoselect.get(0);

coursestoselect.remove(cr);

以位置為依據進行刪除:

coursestoselect.remove(0);

刪除多個元素:

course courses=;

coursestoselect.removeall(arrays.aslist(courses));

我們已經說了這麼多了,有沒有發現我們根本沒有規定這個集合裡面放的元素是什麼型別的,那能放什麼型別的呢?因為這裡我們並沒有規定集合存放的資料型別,所以我們可以放很多態別的資料,但是一般情況下,我們建立乙個集合就是想要存放相同的資料型別,這就用到了泛型。接下來我們說一下泛型的使用。

1.建立

建立和有些像c++裡面的向量的宣告:public listcourses=new arraylist();

在建立時直接就宣告這個集合要承載的資料的資料型別。

其他的和不明確宣告是什麼型別大致是一樣的,泛型還有一點不一樣的就是,從泛型集合中取出元素是它不再是object型別了,它宣告是什麼型別那麼他取出來時就是什麼型別的。

set介面及其實現類--hashset

*set是元素無序並且不可重複的集合,被稱為集

*hashset--雜湊集,是set的乙個重要實現類

因為set是無序的,所以不能根據特定位置訪問某個元素或者修改某個元素。

map介面

*map提供了一種對映關係,其中的元素是以鍵值對(key-value)的形式儲存的,能夠實現根據key快速查詢value

*map中的鍵值對以entry型別的物件例項形式存在

*鍵(key值)不可重複,value值可以

*每個鍵最多只能對映到乙個值

*map介面提供了分別返回key值集合、value值集合以及entry(鍵值對)集合的方法

*map支援泛型,形式如:map

hashmap類

*hashmap是map的乙個重要的實現類,也是最常用的,基於雜湊表實現

*hashmap中的entry物件是無序排列的

*key值和value值都可以為null,但是乙個hashmap只能有乙個key值為null的對映(key值不可重複)

建立:public mapstudents=new hashmap();

新增元素:put(key,value);

keyset()方法就是把map中的所有key值對映到乙個set集合中

get(key)方法就是通過key值得到對應的value值

remove(key)通過key值刪除該元素

通過entryset遍歷map中元素:

set>entryset=students.entryset();

for(entryentry:entryset)

修改:通過put()方法,這時key值就是已經存在的

list的contains(元素)方法:判斷集合中是否包含某個元素,若包含則返回true,否則返回false

contains方法的實現原理:遍歷集合中的每乙個元素,然後呼叫equals方法進行比較。

list的indexof()方法:尋找特定元素在集合中的索引位置,實現原理:從第乙個元素遍歷集合,並呼叫equals方法與一直元素比較如果相等則返回當前索引位置,所以當集合中有多個一樣的元素是只返回第乙個元素的位置;相反的還有乙個是lastindexof(),返回最後一次出現的索引位置。這兩個方法,當找不到元素時都返回-1。

map的containskey(key)判斷集合中是否包含此key值,containsvalue(value)判斷是否包含此value值。

collections工具:

*sort()方法:collections.sort(集合名稱),就將該集合進行排序了。

注意:

物件存入集合都變成object型別,取出時需要型別轉化。

在使用集合時,若使用泛型,則存入集合時的物件只能是泛型宣告時的型別或其子型別,存放其他型別時會報錯,取出時的型別則為宣告時規定的型別。

在子類繼承父類時,子類會呼叫父類的無參構造器,若父類沒有無參構造器就會報錯。

在使用泛型時不能使用基本資料型別宣告,若要使用需要使用其包裝型別。例如:public listlt=new arraylist();

node 慕課網學習

簡寫 npm i 安裝 npm un 刪除 path.dirname node a b c 1.jpg 擷取路徑 結果是 node a b c path.basename node a b c 1.jpg 擷取路徑後面的 結果 1.jpg path.extname node a b c 1.jpg ...

2017 2 14 慕課網學習PHP

php條件結構之switch case 中的break break的作用是阻止 進入下乙個case 中繼續執行。php中迴圈結構之while迴圈語句 在php中,while迴圈語句如下 while 條件 過程 首先判斷某個條件是否符合 條件返回值是否為true 若符合則執行任務,執行完畢任務,再判斷...

AJAX學習筆記(慕課網)

一 建立xhr物件 xhr物件支援ie6以上 五 例子 六 json 1.json解析和校驗 json解析 var josnobj json.parse josondata alert jsonobj.staff 0 name 2.json校驗 jsonlint 七 jquery中的ajax 八 跨...