关于Map:
1.初始化变量
Map<String,Student>students = new HashMap<String,Student>()
//初始化key值为String,存放的数据类型为student的students集合
2.put()增加对象
Student newStu = new Student(ID,name);
students.put(ID,newStudent);//以ID作为key值
3.查找对象
(1)Set<String>keySet = students.keySet();
for(String stuId:keySet){
Student st =students.get(stuId);
}//先用keySet()获取所有的key,再遍历获取每一个对象
(2)Set<Entry<String,Student>>entrySet = students.entrySet();//由于每个键值对都以entry类型存放,yongentrySet()方法获取所有键值对
for(Entry<String,Student>entry:entrySet) {//遍历获取键值对
entry.getKey();//获取key
entry.getValue();//获取value
}
4.删除
students.remove(ID);//根据key的值删除
5.修改
Student stu = students.get(ID);
Student newStudent =new Student(ID,newname);
students.put(ID,newStudent);
/*Map中没有直接修改的方法,所以采用先找出对象,然后不修改key值,只修改value的方法进行修改*/
1.初始化变量
Map<String,Student>students = new HashMap<String,Student>()
//初始化key值为String,存放的数据类型为student的students集合
2.put()增加对象
Student newStu = new Student(ID,name);
students.put(ID,newStudent);//以ID作为key值
3.查找对象
(1)Set<String>keySet = students.keySet();
for(String stuId:keySet){
Student st =students.get(stuId);
}//先用keySet()获取所有的key,再遍历获取每一个对象
(2)Set<Entry<String,Student>>entrySet = students.entrySet();//由于每个键值对都以entry类型存放,yongentrySet()方法获取所有键值对
for(Entry<String,Student>entry:entrySet) {//遍历获取键值对
entry.getKey();//获取key
entry.getValue();//获取value
}
4.删除
students.remove(ID);//根据key的值删除
5.修改
Student stu = students.get(ID);
Student newStudent =new Student(ID,newname);
students.put(ID,newStudent);
/*Map中没有直接修改的方法,所以采用先找出对象,然后不修改key值,只修改value的方法进行修改*/
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class MapTest {
//声明map
public Map <String,Student>students;
//初始化声明的student
public MapTest() {
this.students = new HashMap<String,Student>();
}
//测试添加:输入学生id,判断是否占有
//输入姓名,创建学生对象,并添加到map中;
public void testput() {
Scanner console = new Scanner(System.in);
int i =0;
while(i<3) {
String ID = console.next();
Student st = students.get(ID);//理解问题
if(st==null) {
System.out.println("请输入学生姓名");
String name = console.next();
//创建学生类
Student newStudent = new Student(ID,name);
//添加到map中
students.put(ID, newStudent);
System.out.println("学生添加成功!!");
i++;
}
else {
System.out.println("该同学已存在!!!");
}
}
}
//map中keyset测试
public void testKeySet() {
Set<String> KeySet=students.keySet(); //用set存储keyset返回的键值
System.out.println("共"+KeySet.size()+"学生");
for(String Stuid :KeySet) {
Student st = students.get(Stuid);
if(st!=null)
System.out.println("学生:"+st.name);
}
}
//删除map中的元素方法
public void testRemove() {
System.out.println("请输入删除学生的id:");
Scanner console = new Scanner(System.in);
while(true) {
String id = console.next();
Student st = students.get(id);
if(st==null){
System.out.println("该同学不存在!");
continue;
}
students.remove(id);
System.out.println("删除成功!"+st.name+"已删除");
break;
}
}
//map修改元素,处找出key值对应的value ,修改value;
public void testModify() {
while(true){
Scanner in = new Scanner(System.in);
System.out.println("请输入修改的id:");
String ID=in.next();
//从students中查找该学生ID对应的学生对象
Student st=students.get(ID);//获取values
if(st==null){//判断是否有该ID对象
System.out.println("ID不存在");
continue;
}
String name=in.next();
Student newst=new Student(ID,name);
System.out.println("学生姓名修改为:"+name);
students.put(ID,newst);//修改;此ID为要修改此ID的value的ID
break;
}
}
public static void main(String[] args) {
MapTest mt =new MapTest();
System.out.println("请添加学生信息:");
mt.testput();
mt.testKeySet();
mt.testRemove();
mt.testModify();
}
}