(1)定义学生类,包含姓名(String name),性别(String gender),年龄(int age)三个属性,生成空参有参构造,set和get方法,toString方法
(2)键盘录入6个学员信息(录入格式:张三,男,25),要求有两个相同的信息,将6个学员信息存入到ArrayList集合中
(3)将存有6个学员信息的ArrayList集合对象写入到D:\\StudentInfo.txt文件中
(4)读取D:\\StudentInfo.txt文件中的ArrayList对象
(5)对ArrayList集合中的6个学生对象进行去重并按照年龄从小到大的顺序排序
(2)键盘录入6个学员信息(录入格式:张三,男,25),要求有两个相同的信息,将6个学员信息存入到ArrayList集合中
(3)将存有6个学员信息的ArrayList集合对象写入到D:\\StudentInfo.txt文件中
(4)读取D:\\StudentInfo.txt文件中的ArrayList对象
(5)对ArrayList集合中的6个学生对象进行去重并按照年龄从小到大的顺序排序
(6)将ArrayList集合中排序后的结果利用PrintWriter流写入到E:\\StudentInfo.txt文件中(写入格式:张三-男-25)
package ceShi;
import java.io.Serializable;
public class student implements Serializable {
private String name;//姓名
private String gender;//性别
private int age;//年龄
public String getName() {
return name;
}
public student(String name, String gender, int age) {
super();
this.name = name;
this.gender = gender;
this.age = age;
}
@Override
public String toString() {
return "student [name=" + name + ", gender=" + gender + ", age=" + age
+ "]";
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package ceShi;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
public class cunChu {
public static void main(String[] args)throws IOException, ClassNotFoundException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要输入的学生数量");
int num = sc.nextInt();
System.out.println("请安如下格式输入你要录入的学生信息(录入格式:张三,男,25)");
String[] stuStr = new String[num];
List<student> stuList = new ArrayList<student>();
for(int i = 0;i<num;i++){
System.out.println("请输入第"+(i+1)+"个:");
stuStr[i] = sc.next();
}
Split(stuStr,stuList);
// System.out.println(stuList);
Write(stuList);
Read();
quChongBiJiao(stuList);
printWriter(stuList);
}
private static void printWriter(List<student> stuList) throws IOException {
// 将ArrayList集合中排序后的结果利用PrintWriter流写入到盘符
PrintWriter pw = new PrintWriter(new File("e:"+File.separator+"StudentInfo.txt"));
for(int i = 0;i<stuList.size();i++){
pw.println(stuList.get(i).toString().replace(",", "-"));
}
pw.close();
}
private static void quChongBiJiao(List<student> stuList) {
// 将ArrayList中studen对象去重比较排序
ArrayList<student> newStuList =new ArrayList<student>();
Collections.sort(stuList,new Comparator<student>(){
@Override
public int compare(student o1, student o2) {
// TODO Auto-generated method stub
return o1.getAge()-o2.getAge();
}
});
//去重
for(int i = 0;i<stuList.size();i++){
for(int j =i+1;j<stuList.size();j++){
if((stuList.get(i).getName()).equals(stuList.get(j).getName())&&
(stuList.get(i).getGender()).equals(stuList.get(j).getGender())&&
(stuList.get(i).getAge())==(stuList.get(j).getAge())
){
stuList.remove(i);
}
}
}
System.out.println(stuList);
}
private static void Read() throws IOException, ClassNotFoundException {
// 将stuList反序列化
FileInputStream fis = new FileInputStream("D:"+File.separator+"StudentInfo.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
ArrayList a = (ArrayList) ois.readObject();
System.out.println(a);
}
private static void Write(List<student> stuList) throws IOException {
// 将stuList序列化
//创建字节输出,封装文件
FileOutputStream fos = new FileOutputStream("D:"+File.separator+"StudentInfo.txt");
//创建写出对象的序列化流的对象,构造方法传递字节输出流
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(stuList);
oos.close();
}
private static void Split(String[] stuStr, List<student> stuList) {
// 将输入信息切割成对象属性存入ArrayList集合中
for(int i = 0;i<stuStr.length;i++){
// String name,gender;
// int age;
String[] a =stuStr[i].split(",");
student s = new student(a[0],a[1],Integer.parseInt(a[2]));
stuList.add(s);
}
}
}