一个泛型的应用,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. RESTful Java client with Apache HttpClient / URL /Jersey client

    JSON example with Jersey + Jackson Jersey client examples RESTful Java client with RESTEasy client f ...

  2. 利用百度翻译API,获取翻译结果

    利用百度翻译API,获取翻译结果 translate.py #!/usr/bin/python #-*- coding:utf-8 -*- import sys reload(sys) sys.set ...

  3. linux shell 命令常用快捷键

    下面是一些shell的常用快捷键,快捷键玩熟悉了在一定程度上是可以提高工作效率滴… Ctrl + a 切换到命令行开始 Ctrl + e 切换到命令行末尾 Ctrl + l 清除屏幕内容 Ctrl + ...

  4. Linux性能分析 vmstat基本语法

    vmstat      vmstat 统计虚拟内存信息,可以对操作系统的proc.memory.CPU.IO等信息进行统计以呈现给用户.   根据操作系统的不同,vmstat的输出结果会有不同.大家可 ...

  5. [UE4]使机器人受伤

  6. 长沙雅礼中学集训-------------------day3

    今天的收获还是蛮大的,终于体会了一波在知识的海洋中遨游的美滋滋的快感. T1:给你N个点的位置和他们的速度,这些点向一个方向移动,求前M次超越者的集合A和被超越者的集合B(集合为这些点的速度),以及从 ...

  7. pig入门案例

    测试数据位于:/home/hadoop/luogankun/workspace/sync_data/pigperson.txt中的数据以逗号分隔 ,zhangsan, ,lisi, ,wangwu, ...

  8. 使用HTML引用标签来分隔Ticket回复

    今天在查看Ticket的时候,发现如何和客户之间有很多个来回,Ticket的Correspondence就会很长很长,虽然我们有自己的Breakline,但是由于客户回复邮件时,添加的用于分隔旧信息和 ...

  9. win 关闭正在使用的端口

    1.Windows平台 在windows命令行窗口下执行: 1.查看所有的端口占用情况 C:\>netstat -ano 2.查看指定端口的占用情况 C:\>netstat -aon|fi ...

  10. css position小结

    relative:可使top,right,bottom,left等相对于自身位置来进行偏移:若无则这些偏移都不会起作用 absolute:寻找离自己最近position为relative或absolu ...