java-- Map

来源:互联网 发布:linux shell编程 pdf 编辑:程序博客网 时间:2024/06/05 03:27
import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Scanner;import java.util.Set;public class MapTest {    //泛型为<String,Student>    public Map<String,Student> students;    private Scanner console;    public MapTest(){        this.students=new HashMap<String,Student>();    }    public void testPut(){        console = new Scanner(System.in);        int i=0;        while(i<3){            System.out.println("请输入学生ID:");            String ID=console.next();            //get方法得到的是key值            Student st=students.get(ID);            if(st==null){                System.out.println("请输入学生姓名:");                String name=console.next();                Student newStudent=new Student(ID,name);                //把学生ID作为key值                students.put(ID,newStudent );                System.out.println("成功添加");                i++;            }else{                System.out.println("学生ID已被占用,重新输入");                continue;            }        }    }    /*     * 使用keySet()遍历map集合     */    public void testKeySet(){        //通过keySet方法,返回Map中的key值的Set集合(泛型为:String)        Set<String> KeySet=students.keySet();        //遍历keySet,取得每一个键,再调用get方法取得每一个键的value值        Iterator<String> it=   KeySet.iterator();        while(it.hasNext()){           String key=it.next();           Student s=students.get(key);           System.out.println("学生的ID:"+s.id+"学生的姓名:"+s.name);        }        System.out.println("总共有学生:"+KeySet.size());    }    /*     * 使用EntrySet()遍历map集合     */    public void testEntrySet(){        //entrySet()返回的是map中所有的键值对所以Entry也有泛型,和students一样的泛型        Set<Entry<String,Student>> entrySet=students.entrySet();        Iterator<Entry<String, Student>> it=entrySet.iterator();        while(it.hasNext()){            Entry<String,Student> entry= it.next();              String key=entry.getKey();              System.out.println("key值为:"+key);              Student value=entry.getValue();              System.out.println("学生ID:"+value.id+" 学生姓名:"+value.name);        }    }    /*     * 删除学生     */    public void TestRemove(){     console=new Scanner(System.in);      while(true){          System.out.println("请输入要删除的学生ID:");          String ID=    console.next();           Student  st=students.get(ID);           if(st==null){            System.out.println("学生不存在");        }           else{               students.remove(ID);                  System.out.println("学生已删除");               break;               }      }      testKeySet();    }    /*     * 修改学生信息     */    public void testUpdate(){         console=new Scanner(System.in);        while(true){        System.out.println("请输入修改学生的ID:");        String ID=console.next();        Student stu=students.get(ID);        if(stu==null){            System.out.println("该学生不存在,请重新输入");            continue;        }else{            System.out.println("将要修改的学生姓名:"+stu.name);            System.out.println("输入修改后的学生姓名:");            String stuname=console.next();            Student newstu=new Student(stu.id,stuname);            students.put(stu.id, newstu);            break;        }    }        testKeySet();    }    /*map无索引  查询键 查询值     * 是否包含某个学生     */    public void testContains(){    //使用containsKey() 用key值作为判断依据    boolean stu=students.containsKey("1");    if(stu){        Student stu1=students.get("1");        System.out.println(stu1.id+" : "+stu1.name);    }    //------------------------------------------    //使用containsValue()  用value值作为判断依据    //传入的是学生对象    Student value=new Student(null ,"2");     boolean isname=students.containsValue(value);     if(isname){         System.out.println("确实包含学生:"+value.name);     }else     {         System.out.println("不包含学生:"+value.name);     }    }    public static void main(String[] args) {        // TODO Auto-generated method stub       MapTest map=new MapTest();       map.testPut();       //map.testKeySet();    //   map.testEntrySet();     //  map.testUpdate();       map.testContains();    }}

Java集合–Collections.sort()里面的学生类和课程类

原创粉丝点击