自定义对象使用 ArrayList 进行增删改查(dos程序)
马上要进行java基础考试了,闲着写一次博客,把这10周学的东西过一遍,可能没过全,.....但是我觉得增删改查是必须的,以前一直不会用ArrayList 自定义对象....... 案例如下:自己根据以前写的作业想的哈!!!
1 学生信息管理系统 有姓名 性别 年龄 电话 其中 性别必须定义为布尔型 但是你输入值的时候 要输入男女 ,这就用到了 转化
2 实现对学生管理的添加 修改 删除(这个我没写,没时间了,要打一把游戏)修改 写到文件等操作;
3 自定义一异常类(算是画蛇添足人家本来就有,自己非要定义一下, 回顾一下)
//主函数Tel.java
package 周四考试练习一波; import java.io.IOException;
import java.util.Scanner; public class Tel { public static void main(String[] args) throws ExecptionDemo, IOException {
// TODO 自动生成的方法存根
menu();
} public static void menu() throws ExecptionDemo, IOException//这是菜单函数递归调用就很舒服
{Scanner scanner =new Scanner(System.in);
Method mm=new Method();
System.out.println("--------学生信息管理系统-------");
System.out.println("1 添加");
System.out.println("2 显示");
System.out.println("3 查询");
System.out.println("4 修改");
System.out.println("5 写到文件");
System.out.println("6 读入文件");
System.out.println("--------学生信息管理系统-------");
System.out.println("请输入要选定的序号!");
int choose=scanner.nextInt();
switch (choose) {
case :
//添加
{mm.add(); menu();break;} case :
//显示
{mm.show(); menu();break;}
case :
//删除
{mm.delete(); menu();break;}
case :
//修改
{mm.update(); menu();break;}
case :
//写到文件
{mm.writeit(); menu();break;}
case :
//读入文件
{mm.readit(); menu();break;}
default:
System.out.println("输入无效即将推出");System.exit();break;
} } }
user.java 函数
package 周四考试练习一波; public class User {
public User(String name, int age, boolean sex, int phone) {
super();
this.name = name;
this.age = age;
this.sex = sex;
this.phone = phone;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean getsex() {
return sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}
public int getPhone() {
return phone;
}
public void setPhone(int phone) {
this.phone = phone;
}
private String name;
private int age;
private boolean sex;
private int phone;
}
method.java函数
package 周四考试练习一波;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner; public class Method {
Scanner scanner=new Scanner(System.in);
static ArrayList<User>arrayList=new ArrayList<User>();//这个必须定义为静态的要不不能全局使用,刚开始写错了
public boolean converseto(String a)//这是由男转化为boolean型的函数------我特么蛋疼写完之后发现还不如直接重载
{if(a=="男")
{return true;
}else
return false;
}
public String converseto(boolean a)//原谅我新手没重载
{if(a==true)
{return "男";
}else
return "女";
}
public void add()//添加函数一次添加一个
{
System.out.println("请输入 姓名");
String name=scanner.next();
System.out.println("请输入 年龄");
int age=scanner.nextInt();
System.out.println("请输入 性别");
String sex=scanner.next();
System.out.println("请输入 手机号");
int phone=scanner.nextInt();
arrayList.add(new User(name, age, converseto(sex), phone)); }
public void show()
{
for(User temp:arrayList)
{
System.out.println("姓名 "+temp.getName()+" 年龄 "+temp.getAge()+" 性别 "+converseto(temp.getsex())+" 手机号 "+temp.getPhone()); } }
public void delete() throws ExecptionDemo//这是查询函数,没写功能我也不该名字了怪麻烦的
{System.out.println("请输入要查找的姓名或者手机号");
String find=scanner.next();
int flag=;
for(User temp:arrayList)
{
if(temp.getName().equals(find)||(temp.getPhone()+"").equals(find))
{
System.out.println("姓名 "+temp.getName()+" 年龄 "+temp.getAge()+" 性别 "+converseto(temp.getsex())+" 手机号 "+temp.getPhone());
flag=;
break;
} } if(flag==)
{System.out.println("文件未找到");
throw new ExecptionDemo("文件未找到"); } }
public void update() throws ExecptionDemo//修改函数
{
System.out.println("请输入要查找的姓名或者手机号");
String find=scanner.next();
int flag=;
for(User temp:arrayList)
{
if(temp.getName().equals(find)||(temp.getPhone()+"").equals(find))
{System.out.println("请输入 姓名");
temp.setName(scanner.next());
System.out.println("请输入 年龄");
temp.setAge(scanner.nextInt());
System.out.println("请输入 性别");
temp.setSex(converseto(scanner.next()));
System.out.println("请输入 手机号");
temp.setAge(scanner.nextInt());
flag=;
System.out.println("修改成功");
break;
} } if(flag==)
{System.out.println("文件未找到");
throw new ExecptionDemo("文件未找到"); } } public void writeit() throws IOException//写到文件函数
{BufferedWriter bufferedWriter=new BufferedWriter(new FileWriter(new File("1.txt"),true)); for(User temp:arrayList)
{bufferedWriter.write("姓名 "+temp.getName()+" 年龄 "+temp.getAge()+" 性别 "+converseto(temp.getsex())+" 手机号 "+temp.getPhone()+"\r\n");
}
bufferedWriter.flush();
bufferedWriter.close();
}
public void readit() throws IOException//将文件读入内存函数,读进去之后可以进行查询修改的,,因为你读入了内存
{
BufferedReader bufferedReader=new BufferedReader(new FileReader("1.txt")); String temp=bufferedReader.readLine();
while(temp!=null)
{String b[]= temp.split(" ");
temp=bufferedReader.readLine();
arrayList.add(new User(b[],Integer.parseInt(b[]),converseto(b[]),Integer.parseInt(b[])));
System.out.println(Arrays.toString(b));
};
System.out.println("导入文件成功");
bufferedReader.close();
} }
//自定义异常类函数ExecptionDemo.java
package 周四考试练习一波; public class ExecptionDemo extends Exception{
public ExecptionDemo(String e) throws ExecptionDemo
{super(e); } }
截图如下:............................
自定义对象使用 ArrayList 进行增删改查(dos程序)的更多相关文章
- 【简易版】Java ArrayList(增删改查)
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: (1)动态的增加和减少元素 (2)实现了ICollectio ...
- IOS9中联系人对象的使用及增删改查操作的函数封装
之前克服重重困难把IOS9中新的类联系人搞明白了,现在把增删改查封装成了函数,如下: // // ViewController.m // IOS9中联系人CNContact的使用 // // Crea ...
- javascript json对象操作(基本增删改查)
/** * Json对象操作,增删改查 * * @author lellansin * @blog www.lellansin.com * @version 0.1 * * 解决一些常见的问题 * g ...
- JS对象中属性的增删改查
对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性 对象的分类: 1.内建对象 -在ES标准中定义的对象,在任何的ES的实现中都可以 ...
- python之类与对象属性的增删改查
类属性与对象属性的增删改查 类属性的增删改查 class School: """ 文档 """ Teacher = "老王&quo ...
- JDBC增删改查,PreparedStatement和Statement的区别
此篇是在上一篇的基础上使用PreparedStatement对象来实现JDBC增删改查的 具体工具类JDBCTools和实现类和配置文件在上一篇Statement对象实现的时候有写. 上一篇地址htt ...
- EF学习笔记——通用增删改查方案
http://blog.csdn.net/leftfist/article/details/25005307 我刚接触EF未久,还不知道它有什么强大之处,但看上去,EF提供了一般的增删改查功能.以往用 ...
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
- Hibernate第一个程序(最基础的增删改查) --Hibernate
本例实现Hibernate的第一个程序,Hibernate的优点我想大家都很清楚,在这里不做过多赘述.总之,使用Hibernate对数据库操作,也就是来操作实体对象的! 项目目录: 一.第一步要做的就 ...
随机推荐
- 用Jackson进行Json序列化时的常用注解
Jackson时spring boot默认使用的json格式化的包,它的几个常用注解: @JsonIgnore 用在属性上面,在序列化和反序列化时都自动忽略掉该属性 @JsonProperty(&qu ...
- STM32的程序升级
IAP基础参考http://www.eeworld.com.cn/mcu/2018/ic-news112042038.html https://blog.csdn.net/tq384998430/ar ...
- [NOI 2005]瑰丽华尔兹
Description 题库链接 给你一张 \(n\times m\) 的棋盘,棋盘上有一些障碍.一共 \(t\) 个时刻,被分为 \(k\) 段,在每一段中都有一个向上/下/左/右倾斜的趋势(持续时 ...
- 设计模式课程 设计模式精讲 8-8 单例设计模式-Enum枚举单例、原理源码解析以及反编译实战
1 课堂解析 2 代码演练 2.1 枚举类单例解决序列化破坏demo 2.2 枚举类单例解决序列化破坏原理 2.3 枚举类单例解决反射攻击demo 2.4 枚举类单例解决反射攻击原理 3 jad的使用 ...
- change事件和input事件的区别
input事件: input事件在输入框输入的时候回实时响应并触发 change事件: change事件在input失去焦点才会考虑触发,它的缺点是无法实时响应.与blur事件有着相似的功能,但与bl ...
- Android_实验小心得_持续补充中......
1.LineLayout布局控件宽度百分比显示 其中,宽度百分比 = 控件权重 / 所在parent中所有控件权重和 <LinearLayout android:layout_width=&qu ...
- linux之我的互联网面试经验
互联网面试想必是每个学计算机的学生必不可少的环节,无论你的项目经验再多,你不准备基础知识,也还是无济于事.首先来说说关于工作的事情. 三年前,那时候我还是刚刚快要大四毕业的小鲜肉,那时候有个超大的招聘 ...
- SpringBoot之Feign调用方式比较
一:事发原因 两个东家都使用SpringCloud,巴拉巴拉用上了Spring全家桶,从eureka到ribbon,从ribbon到feign,从feign到hystrix,然后在使用feign的时候 ...
- AndroidQ强势来袭,国产自研系统还有未来吗?
我的小米8在重启时,屏幕上总会出现那句让人印象深刻的话--"Powered by android".事实上,几乎所有Android手机都会出现这几个单词--国产智能手机也不例外.这 ...
- 模板语法(DOM与Vue数据绑定)
Vue.js使用了基于HTML的模板语法,允许开发者声明式的将DOM绑定至底层Vue实例的数据. 插值 文本:{{ }}数据绑定最常见的形式就是使用Mustache语法(双大括号)的文本插值,解释为普 ...