Advertisement
jaVer404

level19.lesson10.home01(fully working) not tested

Feb 23rd, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.98 KB | None | 0 0
  1. package com.javarush.test.level19.lesson10.home01;
  2.  
  3. /* Считаем зарплаты
  4. В метод main первым параметром приходит имя файла.
  5. В этом файле каждая строка имеет следующий вид:
  6. имя значение
  7. где [имя] - String, [значение] - double. [имя] и [значение] разделены пробелом
  8.  
  9. Для каждого имени посчитать сумму всех его значений
  10.  
  11. Все данные вывести в консоль, предварительно отсортировав в возрастающем порядке по имени
  12. Закрыть потоки. Не использовать try-with-resources
  13.  
  14. Пример входного файла:
  15. Петров 2
  16. Сидоров 6
  17. Иванов 1.35
  18. Петров 3.1
  19.  
  20. Пример вывода:
  21. Иванов 1.35
  22. Петров 5.1
  23. Сидоров 6.0
  24. */
  25.  
  26. import java.io.*;
  27. import java.util.*;
  28.  
  29. public class Solution {
  30.     public static void main(String[] args){
  31.         BufferedReader fileReader = null;
  32.         try
  33.         {
  34.             fileReader = new BufferedReader(new FileReader(args[0]));
  35.             String temp = "";
  36.             ArrayList<String[]> fileString = new ArrayList<String[]>();
  37.             HashSet<String> names = new HashSet<String>();
  38.             String []tempValue=null;
  39.             while ((temp=fileReader.readLine())!=null) {
  40.                 try
  41.                 {
  42.                     tempValue = temp.split(" ");
  43.                     if (tempValue[1]!=null) {
  44.                         names.add(tempValue[0]);
  45.                         fileString.add(tempValue);
  46.                     }
  47.                 }
  48.                 catch (Exception e) {}
  49.             }
  50.             fileReader.close();
  51.             Map<String,Double> namesAndDoubles = new HashMap<String, Double>();
  52.             for (String name : names) {
  53.                 double tempDouble = 0;
  54.                 for (String[]values : fileString) {
  55.                     if (name.equals(values[0])) {
  56.                         try
  57.                         {tempDouble=tempDouble+Double.parseDouble(values[1]);}
  58.                         catch (Exception e) {
  59.                         }
  60.                     }
  61.                 }
  62.                 namesAndDoubles.put(name,tempDouble);
  63.             }
  64.             TreeMap<String,Double>  namesAndDoubles2 = new TreeMap<String, Double>(namesAndDoubles);
  65.             namesAndDoubles=namesAndDoubles2;
  66. /*--------------------------------------------------------------------*/
  67.             for (Map.Entry<String,Double> entry : namesAndDoubles.entrySet()) {
  68.                 System.out.println(entry.getKey()+" "+entry.getValue());
  69.             }
  70.         }//end of try
  71.         catch (Exception e)
  72.         {
  73.         }
  74.         if (fileReader!=null) {
  75.             try
  76.             {
  77.                 fileReader.close();
  78.             }
  79.             catch (IOException e) {}
  80.         }
  81.     }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement