Download IO_stream_project/Case_module/src/case_package1/Roll_counter.java from zxy0307/Java: direct link, hf CLI and curl.
- Browser
- Download file 2.22 kB
-
https://huggingface.co/zxy0307/Java/resolve/main/IO_stream_project/Case_module/src/case_package1/Roll_counter.java
- Command line
-
hf download hf://zxy0307/Java/IO_stream_project/Case_module/src/case_package1/Roll_counter.java
-
curl -L -o Roll_counter.java https://huggingface.co/zxy0307/Java/resolve/main/IO_stream_project/Case_module/src/case_package1/Roll_counter.java
2.22 kB
| package case_package1; | |
| import java.io.*; | |
| import java.util.ArrayList; | |
| import java.util.Arrays; | |
| public class Roll_counter { | |
| public static void main(String[] args) throws IOException { | |
| //1、把文件中所有的学生信息读取到内存中 | |
| ArrayList<Student> list = new ArrayList<>(); | |
| BufferedReader br = new BufferedReader(new FileReader("/Users/zhaoxiaoyong/Documents/" + | |
| "Java/IO_stream_project/Case_module/src/NameInfos.txt")); | |
| String line; | |
| while ((line = br.readLine()) != null) { | |
| String[] arr = line.split("-"); | |
| Student stu = new Student(arr[0], arr[1], Integer.parseInt(arr[2]), Double.parseDouble(arr[3])); | |
| list.add(stu); | |
| } | |
| br.close(); | |
| //2、计算权重的总和 | |
| double weight = 0; | |
| for (Student student : list) { | |
| weight += student.getWeight(); | |
| } | |
| //3、计算每个人的实际占比 | |
| double[] arr = new double[list.size()]; | |
| int index = 0; | |
| for (Student stu : list) { | |
| arr[index] = stu.getWeight() / weight; | |
| index++; | |
| } | |
| //System.out.println(Arrays.toString(arr)); | |
| //4、计算每一个人的权重占比范围 | |
| for (int i = 1; i < arr.length; i++) { | |
| arr[i] += arr[i - 1]; | |
| } | |
| //System.out.println(Arrays.toString(arr)); | |
| //5、随机抽取 | |
| //获取一个 0.0 ~ 1.0 之间的随机数 | |
| double number = Math.random(); | |
| //判断number在arr中的位置 | |
| //二分查找法:方法返回 -插入点-1 | |
| int result = -Arrays.binarySearch(arr, number) - 1; | |
| Student stu = list.get(result); | |
| System.out.println(stu); | |
| //6、修改当前的学生权限 | |
| double w = stu.getWeight() / 2; | |
| stu.setWeight(w); | |
| //7、把集合中的数据再次写到文件中 | |
| BufferedWriter bw = new BufferedWriter(new FileWriter("/Users/zhaoxiaoyong/Documents" + | |
| "/Java/IO_stream_project/Case_module/src/NameInfos.txt")); | |
| for (Student s : list) { | |
| bw.write(s.toString()); | |
| bw.newLine(); | |
| } | |
| bw.close(); | |
| } | |
| } | |