標籤:collection 設計程式 practice 關鍵詞 文字檔
1.描述HashMap內部實現原理。
2.描述Hashset和HashMap的區別。
3.年級的集合使用Map的嵌套實現。
10班,每個班50人。
4.編程實現文字檔的複製。合理設計程式,得到緩衝區的大小的高效區間。
提示緩衝區設定1k開始,不超過10M。
----------------------------------------------------------------------
1.HashMap是K-V對,hashmap底層實現了散列演算法,是一種基於關鍵詞的搜尋演算法,提升hashmap尋找速度。hashmap通過hashcode得到一個地址然後equals比較鏈表中各元素,同時取出對應value值。
2.hashset用hashmap實現Key,實現了set介面,繼承collection介面
HashMap:實現map介面,用hash機制儲存,不重複,set和map是同一級的。
3.
package practice;import java.util.HashMap;import java.util.Map;import java.util.Map.Entry;/* **年級的集合使用Map的嵌套實現。 *10班,每個班50人。 */public class MapDemo {public static void main(String[] args) {// TODO Auto-generated method stub//班級集合Map<Integer , Map<String,String>> classes=new HashMap<Integer,Map<String,String>>();//名單集合Map<String,String> names=null;int no=1;//添加班級和班級裡面的名單for(int i=0;i<10;i++){names=new HashMap<String, String>();classes.put(i,names);for(int j=0;j<50;j++){names.put(i+"."+j ,"tom"+no);no++;}}//遍曆班級集合EntrySetfor(Entry<Integer,Map<String,String>> entry : classes.entrySet()){//班號Integer classno=entry.getKey();//班級成員Map<String,String> banji=entry.getValue();//遍曆全部人員for(Entry<String,String> entry0 : banji.entrySet()){//學號String stuno=entry0.getKey();//姓名String nameno=entry0.getValue();System.out.println(classno + " ===> " + stuno + " --> " + nameno) ;}//使用keySet遍曆for(Integer classnum : classes.keySet()){Map<String,String> map=classes.get(classnum);for(String StuN : map.keySet()){String name=map.get(StuN);//String Num=map.ge}}}}}
大資料第12天