IT十八掌作业_java基础第十二天_集合
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IT十八掌作业_java基础第十二天_集合相关的知识,希望对你有一定的参考价值。
1.描述HashMap内部实现原理。
2.描述Hashset和HashMap的区别。
3.年级的集合使用Map的嵌套实现。
10班,每个班50人。
4.编程实现文本文件的复制。合理设计程序,得到缓冲区的大小的高效区间。
提示缓冲区设置1k开始,不超过10M。
------------------------------------------------------------------------------
1 HashMap从纵向看包括一个hashset类型的key集,一个collection的value集。横向看hashmap的本质是一个entry的hashset集合。在存储方式上hashmap底层实现了一个散列算法,散列是一种基于关键词的搜索算法,提升了hashmap的查找速度。hashmap的查找机制是先用对象的hashcode得出一个地址用equals比较地址中的链表的各个元素如果相同取出对应的value值。散列的实现机制是,重写对象的hashcode方法,object的hashcode算法是操作系统实现的,java给出了String的hashcode算法的实现(result*31叠加)。java在hashcode的基础之上用返回值>>>16和hashcode亦或将低十六位更加分散。分配地址到object[]中。
2,hashSet没有KV对的概念,底层是由hashmap实现的
3,Map<Integer,Map<Integer,String>> school=new HashMap<Integer,Map<Integer,String>>();
for(int i=1;i<=10;i++){
Map<Integer,String> classes=new HashMap<Integer,String>();
for(int j=1;j<=50;j++){
classes.put(j, i+j+"");
}
school.put(i, classes);
}
4,FileReader reader=new FileReader("d:/a.txt");
char[] buffer=new char[1024];
FileWriter writer=new FileWriter("d:/b.txt");
int length=-1;
while((length=reader.read(buffer))!=-1){
writer.write(buffer, 0, length);
}
以上是关于IT十八掌作业_java基础第十二天_集合的主要内容,如果未能解决你的问题,请参考以下文章