一个泛型的应用,Java版本增删改查,写的简陋,望批评指正

2016-07-02

很久前写的一个程序了。拿出来存一下,不是为了展示啥,自己用的时候还可以看看。写的很粗糙。

 import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet; public class studen implements Comparable<studen>{
public int id;
public String name;
public char sex;
public String address;
public int javascore;
public int cscore;
public int byscore;
public int j2eescore;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getJavascore() {
return javascore;
}
public void setJavascore(int javascore) {
this.javascore = javascore;
}
public int getCscore() {
return cscore;
}
public void setCscore(int cscore) {
this.cscore = cscore;
}
public int getByscore() {
return byscore;
}
public void setByscore(int byscore) {
this.byscore = byscore;
}
public int getJ2eescore() {
return j2eescore;
}
public void setJ2eescore(int j2eescore) {
this.j2eescore = j2eescore;
}
public void setall(int id, String name,char sex,String address,int javascore,int cscore, int byscore,int j2eescore)
{
this.id=id;
this.address=address;
this.name=name;
this.byscore=byscore;
this.cscore=cscore;
this.j2eescore=j2eescore;
this.sex=sex;
this.javascore=javascore;
} @Override
public String toString() {
return "studen [id=" + id + ", name=" + name + ", sex=" + sex
+ ", address=" + address + ", javascore=" + javascore
+ ", cscore=" + cscore + ", byscore=" + byscore
+ ", j2eescore=" + j2eescore + "]";
} public static void main(String[] args) {
// TODO Auto-generated method stub
Set<studen> A=new HashSet<studen>();
//// /////
File file = new File("infor.txt");
if(file.exists()&&file.isFile())
{
try {
FileReader read=new FileReader("infor.txt");
BufferedReader re=new BufferedReader (read);
String str;
while((str=re.readLine())!=null)
{
//System.out.println(str); String arr[]=str.split(" ");
studen st=new studen();
st.setId(Integer.parseInt(arr[0]));
st.setName(arr[1]);
st.setSex(arr[2].charAt(0));
st.setAddress(arr[3]);
st.setJavascore(Integer.parseInt(arr[4]));
st.setJavascore(Integer.parseInt(arr[5]));
st.setByscore(Integer.parseInt(arr[6]));
st.setJ2eescore(Integer.parseInt(arr[7]));
System.out.println(st.toString());
A.add(st); //System.out.println();
} for(Iterator<studen> it=A.iterator();it.hasNext();)
{
String ss=it.next().toString();
System.out.println("HashSet1***:"+ss+" ");
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
System.out.print("can not read the txt");
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
//插入一个新的student对象给集合SET
System.out.print("插入一个学生 2, GOQI, f,beijing, 90, 89, 78,94:");
studen stu2=new studen();
stu2.setall(2, "GOQI", 'f',"beijing", 90, 89, 78,94);
A.add(stu2);
TreeSet<studen> ts=new TreeSet<studen>();
for(Iterator<studen> it=A.iterator();it.hasNext();)
{
studen cad=it.next();
ts.add(cad);
}
for(Iterator<studen> it2=ts.iterator();it2.hasNext();)
{
System.out.println("Treeset(按ID排序结果):"+it2.next().toString());
}
//serach student
System.out.println("输入待查学生姓名:");
Scanner cin=new Scanner(System.in);
if(cin.hasNext())
{
String name=cin.next();
studen s1=new studen(); ///?
int flage=0;
studen Temp;
for(Iterator<studen> it=A.iterator();it.hasNext();)
{
Temp = it.next();
if(Temp .getName().equals(name))
{
flage=1;
System.out.println("exist this student.");
System.out.println("该生信息为:"+Temp.toString());
break;
}
else
{
;
}
}
if(flage==0)
{
System.out.println("Not exist this student.");
}
}
//删除学生 System.out.println("输入待删除学生姓名:");
Scanner cin2=new Scanner(System.in);
if(cin2.hasNext())
{
String name2=cin2.next(); int flage=0;
studen Temp;
for(Iterator<studen> it=A.iterator();it.hasNext();)
{
Temp = it.next();
if(Temp .getName().equals(name2))
{
flage=1;
it.remove();
System.out.println("removed this student."); break;
} }
if(flage==0)
{
System.out.println("Not exist this student so we can not remove it.");
}
}
//map
Map<Integer,TreeSet<studen>> map=new HashMap<Integer, TreeSet<studen>>();
TreeSet<studen> tm0=new TreeSet<studen>();
TreeSet<studen> tm1=new TreeSet<studen>();
TreeSet<studen> tm2=new TreeSet<studen>();
TreeSet<studen> tm3=new TreeSet<studen>();
TreeSet<studen> tm4=new TreeSet<studen>();
Iterator<studen> treeit=ts.iterator(); studen sno=new studen();
//将学生信息按照%5ID对应treeset 依次放入。
while(treeit.hasNext())
{
sno=(studen) treeit.next();
if(sno.getId()%5==0)
{
tm0.add(sno);
}
else if(sno.getId()%5==1)
{
tm1.add(sno);
}
else if(sno.getId()%5==2)
{
tm2.add(sno);
}
else if(sno.getId()%5==3)
{
tm3.add(sno);
}
else
{
tm4.add(sno);
}
} map.put(0,tm0);
map.put(1,tm1);
map.put(2,tm2);
map.put(3,tm3);
map.put(4,tm4);
////print map
System.out.println("map id:0~4(%5):");
for(Object o : map.keySet()){ System.out.println( "map输出:"+map.get(o).size()+"个:"+map.get(o).toString()); }
}//main @Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
studen other = (studen) obj;
if (id != other.id)
return false;
System.out.println("!!!id 重复无法插入,重复ID为:"+id);
return true;
}
@Override
public int compareTo(studen o) {
// TODO Auto-generated method stub
int result=this.getId()>o.getId()?1:
(this.getId()==o.getId()?0:-1);
return result;
} }

也是泛型的应用

Java学生信息增删改查(并没用数据库)的更多相关文章

  1. Spring Boot实现学生信息增删改查

    上一篇博客写了如何初始化一个简单的Spring Boot项目,这次详细记录一下如何连接数据库并实现增删改查基本操作. 我使用的是MySQL 5.5+Navicat,MySQL量级比较轻,当然微软的SQ ...

  2. MVC模式的学生信息增删改查

    准备:建一个名为 userdb的数据库.建一个student表,有stuid,stuname,gender三个字段.其中stuid为主键.j加入相应的驱动包,相应的JSTL标签 先看目录结构 代码: ...

  3. Sqlite3 实现学生信息增删改查

    import sqlite3 conn = sqlite3.connect('studentsdb.db') # 连接数据库 cursor = conn.cursor( ) # 创建数据表 def c ...

  4. Model1模式的学生信息增删改查

    Student.java package entity; public class Student { private int stuid; private String stuname; priva ...

  5. python学习之-成员信息增删改查

    python学习之-成员信息增删改查 主要实现了成员信息的增加,修改,查询,和删除功能,写着玩玩,在写的过程中,遇到的问题,旧新成员信息数据的合并,手机号和邮箱的验证,#!/usr/bin/env p ...

  6. python全栈开发中级班全程笔记(第二模块、第三章)(员工信息增删改查作业讲解)

    python全栈开发中级班全程笔记 第三章:员工信息增删改查作业代码 作业要求: 员工增删改查表用代码实现一个简单的员工信息增删改查表需求: 1.支持模糊查询,(1.find name ,age fo ...

  7. 【良心保姆级教程】java手把手教你用swing写一个学生的增删改查模块

    很多刚入门的同学,不清楚如何用java.swing去开发出一个系统? 不清楚如何使用java代码去操作数据库进行增删改查一些列操作,不清楚java代码和数据库(mysql.sqlserver)之间怎么 ...

  8. 百度鹰眼Java接口调用增删改查实例

    因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试.刚开始使用springframework封装的RestTemplate,但是测试提示ak参数不存在.后又试了几种方法,均提示a ...

  9. JDBC+Servlet+JSP的学生案例增删改查

    数据库信息传输到页面实现. 先进行学生信息页面展示: 接口IStudentDao public interface IStudentDao { /** * 保存操作 * @param stu 学生对象 ...

随机推荐

  1. Ubuntu终端快捷键使用

    快捷键 功能 Tab 自动补全 Ctrl+a 光标移动到开始位置 Ctrl+e 光标移动到最末尾 Ctrl+k 删除此处至末尾的所有内容 Ctrl+u 删除此处至开始的所有内容 Ctrl+d 删除当前 ...

  2. sql中存储过程打印返回的记录集

    declare --返回结果,记录类型 ret sys_refcursor; --定义一种类型,用来存放返回的记录 type typ_row ), QUEUEID ), QUEUE_NAME )); ...

  3. HTC Vive前置摄像头API(未测试)

    /*WebCamTexture:网络摄像头材质 WebCamTexture.Play() 播放: WebCamTexture.Pause() 暂停: WebCamTexture.Stop() 停止:* ...

  4. Oracle 学习SQL

    开始记录最近学习了一些基础的SQL知识. 说起数据库,想到当时学习数据库概论这本书的时候,就学了一些基本的SQL语句以及数据库理论知识,记得最当时考试的数据库范式的知识,不知当时是怎么过来的,到现在对 ...

  5. Dance GAN 迁移不同视频中人物动作的方法

    该研究提出一种迁移不同视频中人物动作的方法.给出两个视频,一个视频中是研究者想要合成动作的目标人物,另一个是被迁移动作的源人物,研究者通过一种基于像素的端到端流程在人物之间进行动作迁移(motion ...

  6. 学大伟业Day1解题报告

    学大伟业Day1解题报告 张炳琪 一.   时间分配 T1:30分钟  T2: 60分钟  T3:100分钟 二.答题情况及错因 T1:100         T2:55             T3 ...

  7. Helm 入门安装指南

    Helm 是 Kubernetes 生态系统中的一个软件包管理工具.本文将介绍 Helm 中的相关概念和基本工作原理,并通过一个具体的示例学习如何使用 Helm 打包.分发.安装.升级及回退 Kube ...

  8. 怎么理解Linux软中断?

    1.什么是中断 中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求. 2.为什么要有中断呢? "举个生活中的例子" ...

  9. 《GPU高性能编程CUDA实战》第八章 图形互操作性

    ▶ OpenGL与DirectX,等待填坑. ● basic_interop #include <stdio.h> #include "cuda_runtime.h" ...

  10. UCenter 的目录结构

      以下关于文件的阐述以及代码的样例,均以 PHP 程序为例. UCenter 的目录结构 UCenter 分为服务端和客户端 2 个部分.服务端目录为“upload/”,客户端目录为“client/ ...