Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.27 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.Collections;
  5. import java.util.Comparator;
  6. import java.util.List;
  7. import java.util.Scanner;
  8. import java.util.stream.Collectors;
  9.  
  10. public class Voting {
  11.     private String name;
  12.     private ArrayList<Integer> votes;
  13.     private static ArrayList<Voting> votings;
  14.    
  15.     public Voting(){
  16.         this.name = null;
  17.         this.votes = new ArrayList<Integer>();
  18.         this.votings = new ArrayList<Voting>();
  19.     }
  20.  
  21.     public String getName() {
  22.         return name;
  23.     }
  24.  
  25.     public void setName(String name) {
  26.         this.name = name;
  27.     }
  28.  
  29.     public ArrayList<Integer> getVotes() {
  30.         return votes;
  31.     }
  32.  
  33.     public void setVotes(ArrayList<Integer> votes) {
  34.         this.votes = votes;
  35.     }
  36.  
  37.     public ArrayList<Voting> getVotings() {
  38.         return votings;
  39.     }
  40.  
  41.     public void setVotings(ArrayList<Voting> votings) {
  42.         this.votings = votings;
  43.     }
  44.    
  45.     public float getAverage(){
  46.         int sum = 0;
  47.         for (int i = 0; i < this.getVotes().size(); i++){
  48.             sum += this.getVotes().get(i);
  49.         }
  50.         return sum / this.getVotes().size();
  51.     }
  52.    
  53.     public int readVotes (InputStream inputStream){
  54.         Scanner scn = new Scanner(inputStream);
  55.         int result = 0;
  56.         ArrayList<Integer> votesInteger = new ArrayList<Integer>();
  57.         String input;
  58.         while ((input = scn.next()) != null && input.length() != 0 && !input.equals("\n")){
  59.             String [] allVotes = input.split("\n");
  60.             for (int i = 0; i < allVotes.length; i++){
  61.                 String line = allVotes[i];
  62.                 String [] voting = line.split(": ");
  63.                 String name = voting[0];
  64.                 String votes2 = voting[1];
  65.                 String [] votes = votes2.split(" , ");
  66.                 for (int j = 0; j < votes.length; j++){
  67.                     if (Integer.parseInt(votes[j]) > 0 && Integer.parseInt(votes[j]) <= 100){
  68.                         votesInteger.add(Integer.parseInt(votes[j]));
  69.                     }
  70.                 }
  71.             }
  72.            
  73.             result++;
  74.             Voting v = new Voting();
  75.             v.setName(name);
  76.             v.setVotes(votesInteger);
  77.             votings.add(v);
  78.         }
  79.         scn.close();
  80.         return result;
  81.     }
  82.  
  83.  
  84.    
  85.     public void rangList(OutputStream outputStream, String field, String order){
  86.         PrintWriter printWriter = new PrintWriter(outputStream);
  87.         if (order.equalsIgnoreCase("ASC")){
  88.             if (field.equalsIgnoreCase("name")){
  89.                 votings = (ArrayList<Voting>) votings.stream().sorted(Comparator.comparing(Voting::getName, String::compareToIgnoreCase)).collect(Collectors.toList());
  90.             }
  91.             if (field.equalsIgnoreCase("average")){
  92.                 votings = (ArrayList<Voting>) votings.stream().sorted(Comparator.comparing(Voting::getAverage)).collect(Collectors.toList());
  93.             }
  94.         }
  95.         if (order.equalsIgnoreCase("DESC")){
  96.             if (field.equals("name")){
  97.                 votings = (ArrayList<Voting>) votings.stream().sorted(Comparator.comparing(Voting::getName, String::compareToIgnoreCase).reversed()).collect(Collectors.toList());
  98.             }
  99.             if (field.equals("average")){
  100.                 votings = (ArrayList<Voting>) votings.stream().sorted(Comparator.comparing(Voting::getAverage)).collect(Collectors.toList());
  101.             }
  102.         }
  103.         for (int i = 0; i < this.getVotings().size(); i++){
  104.             printWriter.write(this.getVotings().get(i).toString());
  105.         }
  106.         printWriter.flush();
  107.         printWriter.close();
  108.     }
  109.    
  110.     @Override
  111.     public String toString(){
  112.         StringBuilder sb = new StringBuilder();
  113.         sb.append(this.getName() + " : " + this.getAverage() + "\n");
  114.         return sb.toString();
  115.     }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement