Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.List;
- import java.util.Scanner;
- import java.util.stream.Collectors;
- public class Voting {
- private String name;
- private ArrayList<Integer> votes;
- private static ArrayList<Voting> votings;
- public Voting(){
- this.name = null;
- this.votes = new ArrayList<Integer>();
- this.votings = new ArrayList<Voting>();
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public ArrayList<Integer> getVotes() {
- return votes;
- }
- public void setVotes(ArrayList<Integer> votes) {
- this.votes = votes;
- }
- public ArrayList<Voting> getVotings() {
- return votings;
- }
- public void setVotings(ArrayList<Voting> votings) {
- this.votings = votings;
- }
- public float getAverage(){
- int sum = 0;
- for (int i = 0; i < this.getVotes().size(); i++){
- sum += this.getVotes().get(i);
- }
- return sum / this.getVotes().size();
- }
- public int readVotes (InputStream inputStream){
- Scanner scn = new Scanner(inputStream);
- int result = 0;
- ArrayList<Integer> votesInteger = new ArrayList<Integer>();
- String input;
- while ((input = scn.next()) != null && input.length() != 0 && !input.equals("\n")){
- String [] allVotes = input.split("\n");
- for (int i = 0; i < allVotes.length; i++){
- String line = allVotes[i];
- String [] voting = line.split(": ");
- String name = voting[0];
- String votes2 = voting[1];
- String [] votes = votes2.split(" , ");
- for (int j = 0; j < votes.length; j++){
- if (Integer.parseInt(votes[j]) > 0 && Integer.parseInt(votes[j]) <= 100){
- votesInteger.add(Integer.parseInt(votes[j]));
- }
- }
- }
- result++;
- Voting v = new Voting();
- v.setName(name);
- v.setVotes(votesInteger);
- votings.add(v);
- }
- scn.close();
- return result;
- }
- public void rangList(OutputStream outputStream, String field, String order){
- PrintWriter printWriter = new PrintWriter(outputStream);
- if (order.equalsIgnoreCase("ASC")){
- if (field.equalsIgnoreCase("name")){
- votings = (ArrayList<Voting>) votings.stream().sorted(Comparator.comparing(Voting::getName, String::compareToIgnoreCase)).collect(Collectors.toList());
- }
- if (field.equalsIgnoreCase("average")){
- votings = (ArrayList<Voting>) votings.stream().sorted(Comparator.comparing(Voting::getAverage)).collect(Collectors.toList());
- }
- }
- if (order.equalsIgnoreCase("DESC")){
- if (field.equals("name")){
- votings = (ArrayList<Voting>) votings.stream().sorted(Comparator.comparing(Voting::getName, String::compareToIgnoreCase).reversed()).collect(Collectors.toList());
- }
- if (field.equals("average")){
- votings = (ArrayList<Voting>) votings.stream().sorted(Comparator.comparing(Voting::getAverage)).collect(Collectors.toList());
- }
- }
- for (int i = 0; i < this.getVotings().size(); i++){
- printWriter.write(this.getVotings().get(i).toString());
- }
- printWriter.flush();
- printWriter.close();
- }
- @Override
- public String toString(){
- StringBuilder sb = new StringBuilder();
- sb.append(this.getName() + " : " + this.getAverage() + "\n");
- return sb.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement