D12

package sk.upjs.paz;

import java.util.*;

public class UzitocneMetody {

        public static double sucetZoznamu(List<Double> zoznam) {
                if(zoznam==null){
                        throw new ZoznamPrazdnyException();
                }
                if(zoznam.size()==0){
                        throw new ZoznamPrazdnyException();
                }
                double sucet = 0;
                for (Double double1 : zoznam) {
                        sucet += double1;

                }
                return sucet;
        }

        public static List<Double> poleStringovNaListDoublov(String[] pole) throws NepodariloSaVsetkoSkonvertovatException
        {
                List<Double> zoznam = new ArrayList<>();

                double cislo=0;

                NepodariloSaVsetkoSkonvertovatException mojaVynimka=new NepodariloSaVsetkoSkonvertovatException();
                for(String text: pole)
                {
                        try{
                        cislo=Double.parseDouble(text);
                        zoznam.add(cislo);}
                        catch(Exception e){
                                mojaVynimka.getPokazeneSlova().add(text);
                        }
                }
                if(mojaVynimka.getPokazeneSlova().size()>0){
                        throw mojaVynimka;
                }
                return zoznam;
        }

}
 
package sk.upjs.paz;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class Spustac {

        /**
         * @param args
         */

        public static void main(String[] args) {
                // TODO Auto-generated method stub

                List<Double> zoznam=new ArrayList<>();
                zoznam.add(5.0);
                System.out.println(UzitocneMetody.sucetZoznamu(zoznam));
                Set<Double> mnozina=new HashSet<>(zoznam);
                String[] retazce={"11","este horsie","15","1.2","java umrie"};
                try {
                        zoznam=UzitocneMetody.poleStringovNaListDoublov(retazce);
                } catch (NepodariloSaVsetkoSkonvertovatException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                        for(String zleSlovo: e.getPokazeneSlova()){
                                System.err.println(zleSlovo);
                        }

                }
                System.out.println(zoznam.toString());

        }

}
 
package sk.upjs.paz;

import java.util.ArrayList;
import java.util.List;

public class NepodariloSaVsetkoSkonvertovatException extends Exception {

        private List<String> pokazeneSlova=new ArrayList<>();

        public NepodariloSaVsetkoSkonvertovatException() {
                super();
                // TODO Auto-generated constructor stub
        }

        public NepodariloSaVsetkoSkonvertovatException(String arg0, Throwable arg1,
                        boolean arg2, boolean arg3) {
                super(arg0, arg1, arg2, arg3);
                // TODO Auto-generated constructor stub
        }

        public NepodariloSaVsetkoSkonvertovatException(String arg0, Throwable arg1) {
                super(arg0, arg1);
                // TODO Auto-generated constructor stub
        }

        public NepodariloSaVsetkoSkonvertovatException(String arg0) {
                super(arg0);
                // TODO Auto-generated constructor stub
        }

        public List<String> getPokazeneSlova() {
                return pokazeneSlova;
        }

        public void setPokazeneSlova(List<String> pokazeneSlova) {
                this.pokazeneSlova = pokazeneSlova;
        }

        public NepodariloSaVsetkoSkonvertovatException(Throwable arg0) {
                super(arg0);
                // TODO Auto-generated constructor stub
        }

}
 
package sk.upjs.paz;

public class ZoznamPrazdnyException extends RuntimeException {

        public ZoznamPrazdnyException() {
                super();
                // TODO Auto-generated constructor stub
        }

        public ZoznamPrazdnyException(String message, Throwable cause,
                        boolean enableSuppression, boolean writableStackTrace) {
                super(message, cause, enableSuppression, writableStackTrace);
                // TODO Auto-generated constructor stub
        }

        public ZoznamPrazdnyException(String message, Throwable cause) {
                super(message, cause);
                // TODO Auto-generated constructor stub
        }

        public ZoznamPrazdnyException(String message) {
                super(message);
                // TODO Auto-generated constructor stub
        }

        public ZoznamPrazdnyException(Throwable cause) {
                super(cause);
                // TODO Auto-generated constructor stub
        }

}