自定义对象使用 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对数据库操作,也就是来操作实体对象的! 项目目录: 一.第一步要做的就 ...
随机推荐
- EMR 配置纪录(不断更新)
日志路径 -> /var/log(软连接到 /mnt/var/log) 在 spark master 机器中,配置的路径为 /usr/lib/spark/conf /usr/lib/hadoop ...
- java对sql server的增删改查
package Database; import java.sql.*; public class DBUtil { //这里可以设置数据库名称 private final static String ...
- ISAP 算法
Dinic 算法其实已经足够处理大多数的网络流了,但还不够快.接下来介绍的是最优秀的增广路最大流算法:ISAP(Improve Shortest Argumenting Path).它的时间复杂度上界 ...
- sklearn调用SVM算法
1.支撑向量机SVM是一种非常重要和广泛的机器学习算法,它的算法出发点是尽可能找到最优的决策边界,使得模型的泛化能力尽可能地好,因此SVM对未来数据的预测也是更加准确的. 2.SVM既可以解决分类问题 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表单:表单控件状态
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- burpsuite下载安装及基本配置
jdk安装 根据电脑安装对应jdk版本 点此下载jdk 下载完成得到如下exe文件 配置Java环境变量 计算机右键-->属性-->高级系统设置-->环境变量 点击环境变量--> ...
- 第3节 storm高级应用:2、storm与hdfs的整合工程环境准备;3、整合代码开发
======================================== 3. storm与hdfs的整合使用 3.1.功能需求: 实现随机发送订单数据,从计算订单的总金额,然后将订单中的数 ...
- Hadoop的伪分布式安装和部署的流程
1.准备工作 下载一些用到的命令 yum install -y vim yum install -y lrzsz yum install net-tools 目录约定 /opt #工作目录 /opt/ ...
- Day9 - F - Monkey and Banana HDU - 1069
一组研究人员正在设计一项实验,以测试猴子的智商.他们将挂香蕉在建筑物的屋顶,同时,提供一些砖块给这些猴子.如果猴子足够聪明,它应当能够通过合理的放置一些砖块建立一个塔,并爬上去吃他们最喜欢的香蕉. ...
- 第一章、ssh安装及远程登入配置
1.Ubuntu下 确认 SSH Server 是否启动 输入: sudo ps -e | grep ssh. 如果正确启动, 命令行中会显示sshd. 安装服务端 OpenSSH Server 输入 ...