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++;
}
}
//遍历班级集合EntrySet
for(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
}
}
}
}
}原文:http://wwywinnie.blog.51cto.com/10421959/1784893