用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

学生类的操作,HashMap

2018-10-27 作者:不吃鱼举报

[java]代码库

import java.util.*; 
public class Main{ 
    public static void main(String[] args ) { 
         Scanner scan = new Scanner(System.in);
         int num, no, score, i, j;
         String name, op;
         
         num = scan.nextInt();
         Map<Integer, Student> map = new HashMap<Integer, Student>();
         Student s;
         for(i = 0; i < num; i++) {
        	 no = scan.nextInt();
        	 name = scan.next();
        	 score = scan.nextInt();
        	 s = new Student(no, name, score);
        	 map.put(no, s);
         }
         num = scan.nextInt();
         
         for(j = 0; j < num; j++) {
        	 op = scan.next();
             if(op.equals("add")){
            	 no = scan.nextInt();
            	 name = scan.next();
            	 score = scan.nextInt();
            	 s = new Student(no, name, score);
            	 map.put(no, s);
             }
             else if(op.equals("delete")) {
            	 no = scan.nextInt();
            	 map.remove(no);
             }
             else if(op.equals("set")) {
            	 no = scan.nextInt();
            	 score = scan.nextInt();
            	 map.get(no).setScore(score);
             }
         }
         Iterator<Map.Entry<Integer, Student>> iter = map.entrySet().iterator();
         while(iter.hasNext()) {
        	 Map.Entry<Integer, Student> entry = iter.next();
        	 System.out.println(entry.getValue());
         }

         scan.close();  
    } 
}  

class Student{
	int no;
	String name;
	int score;
	public Student(int _no, String _name, int _score) {
		no = _no;
		name = _name;
		score = _score;
	}
	public int getNo() {
		return no;
	}
	public String getName() {
		return name;
	}
	public int getScore() {
		return score;
	}
	public void setScore(int sc) {
		score = sc;
	}
	public String toString() {
		return "no:" +no +" name:" +name +" score:" +score;
	}
	public boolean equals(Student s) {
		if(this.no==s.getNo() && this.name.equals(s.getName()) && this.score==s.getScore())
			return true;
		else
			return false;
	}
	public int hashcode() {
		int result = 17;
		result = 31*result + no;
		return result;
	}
}


分享到:
更多

网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。