大数据Java基础第十二天作业

第一题:HashMap内部实现原理
HashMap存的是key => value 对的集合,每一对就是一个entry(条目),key和value存的都是对象的引用。key不能存重复的值,key的集合是keySet()。value可以存重复的值,value的集合是values()。
HashMap底层用的是hash(散列)算法,使的在map中查询值速度快效率高。
HashMap判断对象是否相等,先判断hashcode是否相等,再判断equals值是否相等。对象相等代码:(this.hashcode() == obj.hashcode() && (this == obj || this.equals(obj)))

第二题:HashSet和HashMap区别
HashSet:实现Collection接口,只存value的集合,用的hash算法存储,value的值不能重复。
HashMap:实现Map接口,存的key=>value的集合,用的hash算法存储,key的值不能重复,value值可以重复。

第三题:
import java.util.Map;
import java.util.HashMap;
import java.util.Map.Entry;

public class Student {
    public static void main(String[] args) {
        Map<Integer,Map <Integer,String>> classes = new HashMap<Integer,Map <Integer,String>>();
        //往里添加数据
        Map<Integer,String> student = null;
        int num = 1;
        for(int i=1;i<=10;i++){
            student = new HashMap<Integer,String>();
            classes.put(i,student);
            for(int j=1;j<=50;j++){
                student.put(j,"Tom" + num);
                num ++;
            }
        }
        
        //使用Entry
        for(Entry<Integer,Map<Integer,String>> class_entry : classes.entrySet()){
            Map<Integer,String> students = class_entry.getValue();
            for(Entry<Integer,String> student_entry : students.entrySet()){
                System.out.println("班级:" + class_entry.getKey() + "班,学号:" + student_entry.getKey() + "号,姓名:" + student_entry.getValue());
            }
        }
        
        System.out.println("--------------------------------------------------------------");
        
        //使用keySet
        for(Integer class_num:classes.keySet()){
            Map<Integer,String> students = classes.get(class_num);
            for(Integer student_num:students.keySet()){
                System.out.println("班级:" + class_num + "班,学号:" + student_num + "号,姓名:" + students.get(student_num));
            }
        }
    }
}
第四题:
import java.io.IOException;
import java.io.FileReader;
import java.io.FileWriter;

class IOWrite{
    public static void main(String[] args) throws IOException{
        int i = 0;
        FileReader out = new FileReader("d:/index1.txt");
        FileWriter in = new FileWriter("d:/index2.txt",true);
        char[] buffer = new char[1024];
        int len = 0;
        while((len = out.read(buffer)) != -1){
            in.write(buffer,0,len);
        }
        in.close();
        out.close();
    }
}


你可能感兴趣的:(java,IO,HashMap)