Java Map增删改查

示例代码:

学生类

package com.imooc.collection;

import java.util.HashSet;
import java.util.Set;

/**
 * 学生类
 * Set中的元素是唯一的,不会重复,但是没有顺序。
 */

public class Student {

    private String id;

    private String name;

    // set集合只能使用 foreach 或 iterator进行遍历,不能使用get()来获取元素
    public Set <Course> course;

    public Student(){

    }

    public Student(String id, String name){
        this.id = id;
        this.name = name;
        this.course = new HashSet<>();
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setCourse(Set<Course> course) {
        this.course = course;
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public Set getCourse() {
        return this.course;
    }
}

学生集合

package com.imooc.map;

import com.imooc.collection.Student;

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

public class MapTest {

    /**
     * 用来承装学生类型对象
     */
    private final Map<String, Student> students = new HashMap<>();

    /**
     * 在构造器中初始化students属性
     */

    public MapTest(){
    }

    /**
     * 测试添加:输入学生ID,判断是否被占用
     * 若未被占用,则输入姓名,创建新学生对象,并且添加到Students中
     */
    private void testPut(){
        // 创建一个Scanner对象,用来获取输入的学生ID和姓名
        Scanner console = new Scanner(System.in);
        int i = 0;
        while (i < 3){
            System.out.println("请输入学生ID:");
            String ID = console.next();
            // 判断该ID是否被占用
            Student st = students.get(ID);
            if (st == null) {
                // 提示输入学生姓名
                System.out.println("请输入学生姓名:");
                String name =  console.next();
                // 创建新的学生对象
                Student newStudent = new Student(ID, name);
                // 通过调用students的put方法,添加ID-学生映射
                students.put(ID, newStudent);
                System.out.println("成功添加学生:" + students.get(ID).getName());
                i ++;
            } else {
                System.out.println("该学生ID已被占用!");
            }
        }
    }

    /**
     * 通过keySet方法来遍历Map
     */
    private void testKeySet(){
        // 通过keySet方法,获取Map中所有的"键"集合
        Set<String> keySet = students.keySet();
        System.out.println("共获取:" + keySet.size() + " 个学生!");

        // 通过Key从Students中获取Student对象
        for(String stuId: keySet){
            Student st = students.get(stuId);
            System.out.println("学生ID:" + st.getId() + "; 学生姓名:" + st.getName());
        }
    }

    /**
     * 通过 entrySet方法来遍历Map
     */
    private void testEntrySet(){
        // 通过entrySet方法,返回Map中的所有"键值对"
        Set<Map.Entry<String, Student>> entrySet = students.entrySet();
        for(Map.Entry<String, Student> entry: entrySet){
            System.out.println("从EntrySet中获取键:" + entry.getKey());
            System.out.println("从EntrySet中获取值:" + entry.getValue().getName());
        }
    }

    /**
     * 测试删除Map中的元素
     */
    private void testRemove(){
        // 提示输入待删除学生的ID
        Scanner 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("该ID不存在!");
                continue;
            }
            students.remove(ID);
            System.out.println("成功删除学生:" + st.getName());
            break;
        }
    }

    /**
     * 测试修改Map中的元素: replace or put 都可以实现
     */
    private void testModify(){
        // 提示输入待修改的学生ID
        Scanner 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("该学生ID不存在,请重新输入!");
            } else {
                System.out.println("请输入要修改的学生姓名:");
                String name = console.next();
                Student newST = new Student(ID, name);
                students.replace(ID, newST);
                break;
            }

        }
    }

    public static void main(String[] args){
        MapTest mt = new MapTest();
        mt.testPut();
        mt.testKeySet();
        mt.testRemove();
        mt.testEntrySet();

        mt.testModify();
        mt.testEntrySet();
    }

}

原文地址:https://www.cnblogs.com/vincenshen/p/10159195.html

时间: 2024-10-25 20:15:02

Java Map增删改查的相关文章

Java MVC 增删改查 实例

需求:增加新部门的功能,对应数据库表示Oracle的dept表 一.Java MVC 增 实现: 1.视图层(V):注册部门 deptUpdate.jsp 2.控制层(C): 3.模型层(M): 二.Java MVC 删 三.Java MVC 改 四.Java MVC 查 全部代码如下: 主页面:index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncod

Java数据库增删改查

数据库为MySQL数据库,Oracle数据库类似: create database db_test;--创建数据库 create user user_test@localhost identified by '123456';--创建用户 grant all privileges on db_test.* to user_test@localhost;--给用户授予权限 use db_test; create table tb_Test( pk_Test_ID char(10) primary

mongoDB用java实现增删改查

package mongo; import java.net.UnknownHostException; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.Mongo; import com.mongodb.MongoException; public class conn

HBase基本API(java)操作(增删改查)

//package hbaseExec2; /* * 创建一个students表,并进行相关操作 */ import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoo

Java连接数据库增删改查

1 package org.test.com; 2 3 import java.sql.Connection; 4 import java.sql.Date; 5 import java.sql.DriverManager; 6 import java.sql.ResultSet; 7 import java.sql.Statement; 8 9 public class Database { 10 public static void main(String[] args) { 11 /* 1

Java Spring-JdbcTemplate增删改查

2017-11-11 21:13:13 Spring 框架中提供了对持久层技术支持的类 : JDBC : org.springframework.jdbc.core.support.JdbcDaoSupport Hibernate 3.0 : org.springframework.orm.hibernate3.support.HibernateDaoSupport iBatis : org.springframework.orm.ibatis.support.SqlMapClientDaoSu

Java学生信息增删改查(并没用数据库)

一个泛型的应用,Java版本增删改查,写的简陋,望批评指正 2016-07-02 很久前写的一个程序了.拿出来存一下,不是为了展示啥,自己用的时候还可以看看.写的很粗糙. 1 import java.io.BufferedReader; 2 import java.io.File; 3 import java.io.FileNotFoundException; 4 import java.io.FileReader; 5 import java.io.IOException; 6 import

LR接口测试---Java Vuser之增删改查

1 import lrapi.lr; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 8 public class Actions { 9 //定义用户名,密码,连接的URL 10 String username = "root"; 11 String password

Redis之五种数据类型的简单增删改查

开心一笑 乌龟受伤.让蜗牛去买药.过了2个小时.蜗牛还没回来.乌龟急了骂道:他妈的再不回来老子就死了!这时门外传来了蜗牛的声音:你他妈再说老子不去了! 提出问题 Redis五种数据类型的简单增删改查命令??? 解决问题 假设你已经安装Redis服务器: 假设你已经打开Redis cli命令行工具: 假设你对Redis有所了解: Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" O