160329集合
来源:互联网 发布:阿里云ecs无法连接ftp 编辑:程序博客网 时间:2024/06/10 12:15
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();
}
}
0 0
- 160329集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 兼容浏览器的js事件绑定函数
- 【杭电oj】1068 - Girls and Boys(最大独立集数,匈牙利算法)
- HDU 2836 Traversal(线段树+离散化+DP)
- docx的解析
- lightoj 1079 - Just another Robbery 01背包
- 160329集合
- Android官方开发文档Training系列课程中文版:数据存储之数据库存储
- IOS学习 info.plist 文件加两行代码 多线程NSThread/GCD 异步下载网络图片
- nginx_http_proxy_module,实现反向代理及缓存功能
- 浅谈Servlet的本质
- 32 继承(三)
- 如何用消息系统避免分布式事务?
- 如何将c结构数据传给lua
- Java 多数据源切换