java map存放班级和姓名_Java:声明学生类和HashMap,使用HashMap存储学生类,使用2种遍历方式遍历出学生信息...

4ea731abdb7a58b4bf7780093e89546d.png

34f46fdc0c1d77ad1c09d5d7b6ec98ae.png

1268941b34c3685559eb23e1fb94e5cb.png

f72fde7c9d1346c1b22d523c8a2711cc.png

5b94827922c625c5468645cd0a6198bf.png

2901e9463f24ee6b7078e2f112b06bad.png

声明学生类和HashMap,使用HashMap存储学生类,使用2种遍历方式遍历出学生信息

/*

每一个学生都有对应归属地。

学生Student 地址 String。

学生属性:姓名,年龄。

注意:姓名和年龄相同的视为同一个学生。

保证学生的唯一性。

步骤:

1、描述学生。

2、定义map容器,将学生作为键,地址作为值,存入。

3、获取map集合中的元素。

*/

package a;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

public class lizi {

public static void main(String[] args) {

HashMap HSduixiang = new HashMap();

HSduixiang.put(new class_Student("张三", 22), "北京");

HSduixiang.put(new class_Student("李四", 25), "上海");

HSduixiang.put(new class_Student("王五", 24), "香港");

HSduixiang.put(new class_Student("小张", 24), "烟台");

HSduixiang.put(new class_Student("小李", 26), "济南");

System.out.println("第一种取出方式 ketSet:");

Set keySet = HSduixiang.keySet();

Iterator tiquchudeKey1 = keySet.iterator();

while (tiquchudeKey1.hasNext()) {

class_Student Student_name_age1 = tiquchudeKey1.next();

String addr = HSduixiang.get(Student_name_age1);

System.out.println(Student_name_age1 + "---" + addr);

}

System.out

.println("HSduixiang.get(Student_name_age)中的Student_name_age这里充当了Key,\n"

+ "就像引索,用关键词搜索出要相关的内容一样,这里的相关内容是地址addr");

System.out.println();

System.out.println("第二种取出方式entrySet:");

Set> entrySet = HSduixiang.entrySet();

Iterator> tiquchudeKey2 = entrySet.iterator();

while (tiquchudeKey2.hasNext()) {

Map.Entry yongMEdedaodeshujv = tiquchudeKey2.next();

class_Student Student_name_age2 = yongMEdedaodeshujv.getKey();

String addr = yongMEdedaodeshujv.getValue();

System.out.println(Student_name_age2 + "=====" + addr);

}

}

}

class class_Student implements Comparable {

private int age;

private String name;

class_Student(String name, int age) {

this.name = name;

this.age = age;

}

@Override

public int compareTo(class_Student s) {

// TODO 自动生成的方法存根:

int num = new Integer(this.age).compareTo(new Integer(s.age));

if (num == 0)

return this.name.compareTo(s.name);

return num;

}

@Override

public boolean equals(Object obj) {

if (!(obj instanceof class_Student))

throw new ClassCastException("类型不匹配");

class_Student s = (class_Student) obj;

return this.name.equals(s.name) && this.age == age;

}

public int getAge() {

return age;

}

public String getName() {

return name;

}

// 保证键的唯一性:

@Override

public int hashCode() {

return name.hashCode() + age * 34;

}

@Override

public String toString() {

return name + ":" + age;

}

}14a9a19bc52449461cf02e9fa57d5bda.png

07badf9d753476fc5aa76ab219d5371a.png

19d442cb11aba5db08279ac2bbbced5b.png

c8bff41db32c211a2779bc71e949a52d.png

bd4b10b2448e7e3bd976fa4c51f6cd27.png

8e0d388775cb55c82bb516e39dff3eaa.png

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值