容器 集合作业

来源:互联网 发布:java json替换value值 编辑:程序博客网 时间:2024/06/14 06:55

1. 由控制台按照固定格式输入学生信息,包括学号,姓名,年龄信息,当输入的内容为exit退出;将输入的学生信息分别封装到一个Student对象中,再将每个Student对象加入到一个集合中,要求集合中的元素按照年龄大小正序排序;最后遍历集合,将集合中学生信息写入到记事本,每个学生数据占单独一行。

推荐步骤:

a) 创建Student类,并指定按照年龄正序排列

b) 通过控制台输入多个不同Student信息。格式规定为:编号#姓名#年龄

c) 取出字符串中相应信息放入Student对象,并将Student加入到集合中

d) 遍历集合的过程中将学生的信息输入到记事本

难点:

e) 如何指定学生按照年龄正序排列

f) 如果从字符串“编号#姓名#年龄”中提取学生信息

g) 放入哪种集合后可以保证学生按照年龄大小正序排列

h) 如何将集合中学生信息写入记事本,每个学生数据占单独一行

 

import java.util.ArrayList;import java.util.HashMap;import java.util.LinkedHashMap;import java.util.List;import java.util.Set;import java.util.Map.Entry;public class Student {int id;String name;int age;String sex;public Student(int id, String name, int age, String sex) {super();this.id = id;this.name = name;this.age = age;this.sex = sex;}@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + ", age=" + age+ ", sex=" + sex + "]";}public static void listToMap() {Student s1 = new Student(101, "张三", 20, "男");Student s2 = new Student(102, "李四", 23, "男");Student s3 = new Student(103, "韩梅", 21, "女");Student s4 = new Student(104, "赵亮", 24, "男");Student s5 = new Student(105, "亚芳", 19, "女");List<Student> ar = new ArrayList<Student>();ar.add(s1);ar.add(s2);ar.add(s3);ar.add(s4);ar.add(s5);HashMap<Integer, Student> hm = new HashMap<Integer, Student>();for (int i = 0; i < ar.size(); i++) {System.out.println(ar.get(i));hm.put(ar.get(i).id, ar.get(i));}System.out.println("====List转Map====");Set<Entry<Integer, Student>> en = hm.entrySet();for (Entry<Integer, Student> k : en) {System.out.println("key:" + k.getKey() + ",value" + k.getValue());}}public static void mapToList() {Student s1 = new Student(1, "张三", 20, "男");Student s2 = new Student(2, "李四", 23, "男");Student s3 = new Student(3, "韩梅", 21, "女");Student s4 = new Student(4, "赵亮", 24, "男");Student s5 = new Student(5, "亚芳", 19, "女");LinkedHashMap<Integer, Student> hm = new LinkedHashMap<Integer, Student>();hm.put(s1.id, s1);hm.put(s2.id, s2);hm.put(s3.id, s3);hm.put(s4.id, s4);hm.put(s5.id, s5);System.out.println(hm);System.out.println("====Map转List====");ArrayList<Student> students = new ArrayList<Student>();//Map的key必须是有规律的Int型才可以for (int i = 1; i <= hm.size(); i++) {students.add(hm.get( i));}for (Student student : students) {System.out.println(student);}}public static void main(String[] args) {listToMap();System.out.println("=====================================");mapToList();}}

1.使用编程在c盘根目录下创建一个文件夹abc
在文件夹abc中循环创建1000个文本文件

import java.io.File;import java.io.IOException;public class ChuangJian {public static void main(String[] args) throws IOException {File f = new File("c:/abc");f.mkdirs();for(int i =1;i<=1000;i++){f = new File("c:/abc/"+i+".txt");f.createNewFile();}}}
3.(选作题)从键盘接收一个文件夹路径,统计该文件夹大小
public class DaXiao {static long sum = 0L;static long sum1 = 0L;public static void fdg(File f) {if (f.exists()) {if (f.isDirectory()) {File[] fs = f.listFiles();if (null != fs) {for (File ff : fs) {fdg(ff);}}} else {sum+=f.length();}}sum1+=sum;}public static void main(String[] args) {File f = new File("e:/workspace");DaXiao s = new DaXiao();fdg(f);System.out.println(sum1);}}


原创粉丝点击