160329集合

LIST接口  进入容器的类编程Object类 取出时候要强转类型




//Map接口  KEY,VALUE 键值对
package Maptest;






import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;


public class MapTest {
    //定义Map接口的students容器 泛型为String Student
Map<String , Student> students;
Scanner console = new Scanner(System.in);
public MapTest(){
//构造students对象  固定哈希map
this.students=new HashMap<String , Student>();
}

public void testPut(){

for(int i=0;i<3;i++){
System.out.println("请输入ID");

String ID=console.next();
//检查student中ID值的value(类型为Student)是否已经被复制了、
Student student=students.get(ID);
if(student==null)//根绝ID和学生姓名创建新的学生对象
{
System.out.println("请输入学生姓名");
//下面开始操作Student类中的对象,给students容器中的nstu对象赋值。
String name = console.next();
Student nstu= new Student(ID,name);//构造Student类对象
students.put(ID,nstu);
System.out.println("成功添加学生:"+ID+" "+nstu.name);//可以用students.get(id).name代替
}
else
{
System.out.println("该序号被占用,请重新输入ID");
i--;
continue;
}
}

}
public  void keySet(){
//返回Map中的key值//创建Set接口容器放置ID(所有key值)
Set<String> keySet=students.keySet();
for(String Id:keySet)//遍历SET中的key值
{
Student stu1=students.get(Id); //返回的value值
if(stu1!=null)
System.out.println("打印现有学生:"+stu1.id+"号"+stu1.name);
else
{
continue;
}
}

}

public void testRemove(){
System.out.println("请输入要删除的学生ID");
String sID=console.next();
Student removestu=students.get(sID);
if(removestu!=null)
{
System.out.println("已经删除"+sID+"姓名"+removestu.name);
students.remove(sID);
}
else
{
System.out.println("该ID没有学生");
}



}

//返回键值对而不是STRING
public void testEntrySet(){

Set<Entry<String,Student>> entrySet=students.entrySet();
//遍历Entry类型的键值对
for(Entry<String,Student> entry:entrySet)
{
if(entry.getValue()!=null)
{
System.out.println(entry.getKey()+" "+entry.getValue().name);
}

}
}

//利用PUT方法修改
public void testModify()
{
System.out.println("请输入要修改的学生ID");
String mID=console.next();
//返回mID所指的VALUE对象(Student类型)传给mst;
while(true){
Student mSt=students.get(mID);

if(mSt==null)
{
System.out.println("该ID不存在");

}
else
{
System.out.println("请输入修改后的学生姓名");
String mname=console.next();
//创建新对象用put方法代替原对象;
Student  nst=new Student(mID,mname);
students.put(mID, nst);
System.out.println("修改完成");
break;
}
}

}

public static void main(String[] args) {
// TODO Auto-generated method stub
MapTest mt=new MapTest();
mt.testPut();
mt.keySet();
mt.testRemove();
mt.keySet();
mt.testEntrySet();
mt.testModify();
mt.testEntrySet();
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值