已知用户User类,该类有name age两个属性。定义集合存储5个用户,通过键盘录入用户,按照年龄升序排序,遍历集合,输出用户的信息,将排序后的内容写到user.txt中。使用流读取user.txt文件中的内容(分割存到新的集合),将年龄大于18的用户信息打印输出到控制台。
static Scanner sc=new Scanner(System.in);
static List<User> list=new ArrayList<>();
static {
for (int i = 1; i <=5; i++) {
System.out.println("请输入"+i+"个name");
String name=sc.next();
System.out.println("请输入"+i+"个age");
int age=sc.nextInt();
list.add(new User(name,age));
}
}
public static void main(String[] args) throws IOException {
Collections.sort(list, new Comparator<User>() {
@Override
public int compare(User o1, User o2) {
int a=o1.getAge()-o2.getAge();
if(a==0){
a=o1.getName().compareTo(o2.getName());
}
return a;
}
});
for (String arg : args) {
System.out.println(arg);
}
BufferedWriter br=new BufferedWriter(new FileWriter(new File("user.txt")));
for (User user : list) {
br.write(user.getName()+"-"+user.getAge());
br.newLine();
}
br.close();
BufferedReader bw=new BufferedReader(new FileReader(new File("user.txt")));
String a;
List<User> list1=new ArrayList<>();
while ((a=bw.readLine())!=null) {
String[] arr = a.split("-");
list1.add(new User(arr[0],Integer.parseInt(arr[1])));
}
bw.close();
for (User user : list1) {
System.out.println(user.getName()+user.getAge());
}
System.out.println("大于18的信息");
for (int i = 0; i < list1.size(); i++) {
if (list1.get(i).getAge()>18){
System.out.println(list1.get(i));
}
}
}
为什么要创建新的集合呢 因为第一个集合里面已经有数据了不能添加相同的数据