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();
}
}
//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();
}
}