Map集合與List集合混合使用對比

2021-06-27 08:07:19 字數 1822 閱讀 1575

作為乙個剛開始學程式設計的人來說,下面文字的一些表述肯定會有錯誤,希望前輩們多多批評,或者等以後我自己回過頭來覺得自己當初怎麼這麼菜,那也說明我進步了。嗯,就這樣開始吧!

思路一:學校教室的名稱-班級,id和name,分別可以作為map集合裡的鍵和值,也就是分別都有對映關係。這個思路的特點是使用了兩層的巢狀關係,因為學校和教室是一對關係,而id和name這對關係又是教室下的。所以在建立map集合時就與一般的稍微有點不同,具體見下面**:

//建立學校czbk

hashmap> czbk=new hashmap>();

//給其中乙個班傳學生的id和name

hashmapyure=new hashmap();

//給另乙個班傳學生id和name

hashmapjiuye=new hashmap();

czbk.put("yureban",yure);

czbk.put("jiuyeban",jiuye);

yure.put("01","zhangsan");//yure裡面的01,zhangsan分別是id和name

yure.put("02","lisi");

jiuye.put("01","zhaoliu");//jiuye裡面的01,zhaoliu分別是id和name

jiuye.put("02","wangwu");

可以看到上面**的第一行hashmap裡面「值」(與鍵對應的值)泛型類的表述是hashmap,是因為班級裡面的學生id和name也是乙個hashmap集合的鍵和值。這兩層巢狀關係在

hashmap>這句**裡面也就體現出來了。

//遍歷czbk集合,獲取所有教室,使用的是keyset()方法,也可以使用entryset()方法

iteratorit=czbk.keyset().iterator();

while(it.hasnext())

}

//getstuinfo()方法來對教室裡的id和name進行獲取,同樣用的是keyset()方法

public static void getstuinfo(hashmaproommap)//傳入某個班級的名字

}}

思路二:學校裡的教室-班級作為一對鍵值,建立乙個學生類,id和name只是作為這個學生類的屬性,不再具有對映關係(鍵值對)。**如下:

首先要建立乙個學生類:

class student

public string tostring()

}

接著是demo()方法裡面建立乙個hashmap集合傳入教室名稱(鍵)和班級(值),班級裡面對應的是學生類的id和name,由於沒有對映關係,所以使用list集合建立這兩個班級,**如下:

public static void demo()//使用學生類,讓有對映關係的學校與班級,沒有對映關係的學生id和name一同應用

*///第二種獲取方式,keyset

setkeyset=czbk.keyset();

iteratorit=keyset.iterator();

while(it.hasnext())

}public static void getinfo(listlist)//把學生類作為物件,id和name不再有對映關係,所以下面**可以直接取出id和name

}

**裡面的其他一些細節,比如map集合裡面的hashmap與treemap有什麼區別?list和set集合在使用迭代器(iterator)時候有什麼內在的區別?list,set,map,collection等集合到底都是什麼關係?都是我之後要去搞懂的地方。 

Scala中List集合與Map集合的相互轉換

list集合轉換成map集合object demo println tuples 將list轉換成map val map map string,int tuples.tomap println map 結果為 list dog,3 tiger,5 lion,4 cat,3 panther,7 eag...

Set集合與Map集合

一 set集合 無序 不能出現重複元素 沒有角標 的集合 1 直接列印system.out.println set 2 增強for迴圈foreach 3 迭代器遍歷iterator 特點 無序 set集合的無序 指的是與元素放入的順序無關 不能重複 每乙個set子類都有自己的元素查重規則 沒有角標 ...

list集合與queue集合

1 特點 元素是有序 可重複的,因為該集合體系有索引。list體系下listiterator介面在iterator介面基礎上增加了如下方法 void add object o 在指定位置插入乙個元素 2 實現類 arraylist和vector作為list類的兩個典型實現,完全支援之前介紹的list...