java-- Map


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()里面的学生类和课程类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值