Hash Map的分拣存储思想

HashMap分拣存储字母

/**
 * 统计每个单词出现的个数
 * 存储到map中
 *
 */
public class Map01 {
    public static void main(String[] args){
        String str="my name is zhangrui i am is a student and my school is xian";
        Map<String,Letter> letters=new HashMap<String,Letter>();//map容器
        String[] strArra=str.split(" ");
        for(String temp:strArra){
            Letter con=null;
            if(null==(letters.get(temp))){
                con=new Letter();
               con.setCount(1);
            }else{
                con.setCount(con.getCount()+1);

            }
        }
        Set<String> keys=letters.keySet();//遍历key
        for(String key:keys){
            Letter col=letters.get(key);
            System.out.println(key+":"+col.getCount());
        }


    }
}
class Letter{//单词类
    String name;
    int count;
    public Letter(){}
    public Letter(String name,int count) {
        this.name = name;
        this.count=count;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

对象思想的map练习

/**
 *
 * 将学生添加到list中组成一个班级ClassRoom,然后将这个班级存储在Map中
 * 存储到map中
 *
 */
public class Map01 {

    public static void main(String[] args) {
        List<Student> list = new ArrayList<Student>();
        exam(list);//将学生装进list
        Map<Integer,ClassRoom> rooms=new HashMap<Integer, ClassRoom>();
       count(rooms,list);//将班级classroom存储在map里
       print(rooms);//打印

    }
    public  static void print(Map<Integer,ClassRoom> rooms){
        Set<Integer> keys=rooms.keySet();
        for(Integer key:keys){
            System.out.println("班级"+key+":");
            for(Student s:rooms.get(key).getStus()){
                System.out.println("\t"+s.getName()+"\t"+s.getClassNumber()+"\t"+s.getScore());
            }
        }
    }
    public static void exam(List<Student> list){
        list.add(new Student("zhang",1,80));
        list.add(new Student("z",2,80));
        list.add(new Student("zh",3,80));
        list.add(new Student("zha",4,80));
        list.add(new Student("zhan",2,80));

    }
    public static void count(Map<Integer,ClassRoom> rooms,List<Student> list){
        for(int i=0;i<list.size();i++){
            int number=list.get(i).getClassNumber();//获得学生的班级号
            if(! rooms.containsKey(number)){//如果map中还没有这个班级
                rooms.put(number,new ClassRoom());
                rooms.get(number).getStus().add(list.get(i));//将学生添加进相应的数组
            }else{//如果班级已存在
                ClassRoom classnu= rooms.get(number);
                classnu.getStus().add(list.get(i));
            }
        }
    }
}
class Student{
  private String name;
  private int classNumber;
  private double score;

    public Student(String name,int classNumber,double score) {
        this.name = name;
        this.classNumber=classNumber;
        this.score=score;
    }

    public String getName() {
        return name;
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public int getClassNumber() {
        return classNumber;
    }

    public void setClassNumber(int classNumber) {
        this.classNumber = classNumber;
    }

    public void setName(String name) {
        this.name = name;
    }
}
class ClassRoom{
        private int classNumber;
        private List<Student> stus;
        private double tatol;

    public ClassRoom(){
        stus=new ArrayList<Student>();
    }
    public ClassRoom(int classNumber){
        this();
        this.classNumber=classNumber;
    }
    public double getTatol() {
        return tatol;
    }

    public void setTatol(double tatol) {
        this.tatol = tatol;
    }

    public List<Student> getStus() {
        return stus;
    }

    public void setStus(List<Student> stus) {
        this.stus = stus;
    }

    public int getClassNumber() {
        return classNumber;
    }

    public void setClassNumber(int classNumber) {
        this.classNumber = classNumber;
    }
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值