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();
} }
Java Map增删改查的更多相关文章
- JAVA JDBC 增删改查简单例子
1.数据库配置文件jdbc.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username= ...
- java中增删改查(CRUD)总结
对于User表增删改查:1:save(保存方法) view(查询所有记录) update(更新方法) delete(删除方法) 通过method这个参数进行判断执行不同的操作 2: 具体的实现: ...
- Java MVC 增删改查 实例
需求:实现增加新部门的功能,对应数据库表示Oracle的dept表 一.Java MVC 增 实现: 1.视图层(V):注册部门 deptAdd.jsp 在注册新部门页面只需输入“部门名称”和“城市” ...
- 基于mongodb的java之增删改查(CRUD)
1,下载驱动https://github.com/mongodb/mongo-java-driver/downloads,导入工程java中 2,建立测试代码 import java.net.Unkn ...
- Java数据库增删改查
数据库为MySQL数据库,Oracle数据库类似: create database db_test;--创建数据库 ';--创建用户 grant all privileges on db_test.* ...
- mongoDB用java实现增删改查
package mongo; import java.net.UnknownHostException; import com.mongodb.BasicDBObject; import com.mo ...
- java连接数据库增删改查公共方法
package dao; import java.io.IOException; import java.sql.CallableStatement; import java.sql.Connecti ...
- Java List 增删改查
定义2个类,课程类和选课类 package com.imooc.collection; /** * 课程类 */ public class Course { private String id; pr ...
- java mongodb 增删改查 工具类
package com.jttx.demo; import com.mongodb.*; import com.mongodb.util.JSON; import java.net.Unkno ...
随机推荐
- 移动web开发经验总结(转)
1.<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, minimum-sca ...
- GoogleMap-------manifest文件配置
前言:在使用GoopleMap之前需要配置manifest文件 1.这个可有可无,com.xhm.meishi是项目的包名 <!-- 声明调用这个应用需要的权限 --> <permi ...
- mybatis 一次执行多条SQL MySql+Mybatis+Druid之SqlException:sql injection violation, multi-statement not allow
如果用JDBC jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=utf8 ...
- 标准模板库--STL
标准模板库STL 1.泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用 C++中有两个方面体现重用: 1.面向对象的思想:继承和多态,标准类库 2.泛型程序设计(generic progra ...
- hihocoder 1279(状压)
坑爹的题目.不过不能说不是一道挺好的题目. 坑主要坑在,妹的我一样的复杂度,写的姿势略差了点然后就一直超时. 比赛的时候我还直接就看错题目,把AND运算看成了OR...还敲完交了一发. 这题很容易想到 ...
- JSF -> 导航(Navigation)
在使用jsf框架时,肯定会用到faces-config.xml. 而其中就会出现很多的Navigation项. 其实这些Navigation就是一些页面跳转的东西. 以下内容来自http://blog ...
- es站内站内搜索笔记(一)
es站内站内搜索笔记(一) 第一节: 概述 使用elasticsearch进行网站搜索,es是当下最流行的分布式的搜索引擎及大数据分析的中间件,搜房网的主要功能:强大的搜索框,与百度地图相结合,实现地 ...
- 使用 Docker 部署 MongoDB 复制集
启用三个 mongod 建立复制集. MongoDB 版本选择目前最新的稳定版 3.6.2-jessie. docker run --name mongo0 -d mongo:3.6.2-jessie ...
- 基于Mesos和Docker的分布式计算平台
基于Mesos和Docker的分布式计算平台 http://www.csdn.net/article/2015-06-09/2824906
- 比较运算符compareTo()、equals()、==之间的区别
前言 首先再次强调hashcode (==)和equals的真正含义(我记得以前有人会说,equals是判断对象内容,hashcode是判断是否相等之类): equals:是否同一个对象实例.注意,是 ...