Коллекции. Работа с файлами - Java
Формулировка задачи:
Здравствуйте, было дано задание: "
Подготовить исходные данные в текстовом файле. Ввести данные из файла в ArrayList с использованием классов. Вывести данные из файла на экран в виде таблицы. Выполнить вычисления, вывести результат на экран и записать в новый файл.
" (Свой вариант прикреплен картинкой
) Программу написала (даже работает!), единственная загвоздка - не понимаю, как сделать сортировку массива (в самом конце) именно из файла... То есть не сделала самое основное - "определить двух самых высоких студентов
". Помогите, пожалуйста!package Lab22; import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; public class ex22 { public static void main(String[] args) throws IOException { ArrayList <Svedenia> arr = new ArrayList <Svedenia> (); BufferedReader in = null; try { in = new BufferedReader(new FileReader("C:\\Users\\asus\\Downloads\\in.txt")); String s; int n = 0; System.out.println("___________________"); while((s = in.readLine()) != null) { int p = s.indexOf(","); Svedenia sved = new Svedenia(s.substring(0, p), Double.parseDouble(s.substring(p+1))); arr.add(sved); System.out.printf("|%20s%10.2f|\n", arr.get(n).getName(), arr.get(n).getResult()); n++; } } finally { in.close(); } FileWriter out = new FileWriter("C:\\Users\\asus\\Downloads\\out.txt"); System.out.println("Фамилия: "); double max=0; for(Svedenia entry:arr) { if(entry.getResult() > max) { //Где-то тут должна быть сортировка массива max=entry.getResult(); System.out.println(entry.getResult() + ", " + entry.getName()); out.write(entry.getResult() + ", " + entry.getName() + "\r\n"); } } out.close(); } }
package Lab22; public class Svedenia { private String name; private double result; public Svedenia(String n, double r) { name = n; result = r; } public String getName() { return name; } public double getResult() { return result; } }
Решение задачи: «Коллекции. Работа с файлами»
textual
Листинг программы
List<Class> s = new ArrayList<>(); s.add(String.class); s.add(Integer.class); s.sort(comparing(Class::getName)); System.out.println(s); }