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基础第十二天_集合的主要内容,如果未能解决你的问题,请参考以下文章

IT十八掌作业_java基础第十二天_集合

IT十八掌作业_java基础第十五天_IO串行化/深度复制

IT十八掌作业_java基础第十七天_QQ案例

IT十八掌作业_java基础第十六天_GUI/socket

IT十八掌作业_java基础第十五天_IO串行化/深度复制

IT十八掌作业_java基础第二天_进制转换原理和补码存储方式