IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Adamator
Člen
Avatar
Adamator:28.12.2013 10:06

Ahoj. Potřebuji vědět jestli jde v poli nebo v ArrayListu sečíst všechny hodnoty daném poli nebo ArrayListu a jaký komponent se na to více hodí?
např.
cisla[0] = 20;
cisla[1] = 10;
cisla[2] = 5;
A ted chci aby se všechna tato čísla sečetla bez ohledu na to kolik jich v tom poli je... Používám to k kalkulačce kam chci zakomponovat tlačítka "M+" " M-" a "MRC" (Sčítání kladných a záporných čísel).

Děkuji za odpověd. Adam 13 let.

 
Odpovědět
28.12.2013 10:06
Avatar
Juraj Mlich
Tvůrce
Avatar
Odpovídá na Adamator
Juraj Mlich:28.12.2013 10:09

Prejdi ich v cykle a pričítavaj ich k premennej vytvorenej mimo cyklu...

 
Nahoru Odpovědět
28.12.2013 10:09
Avatar
Adamator
Člen
Avatar
Odpovídá na Juraj Mlich
Adamator:28.12.2013 10:27

Děkuju moc už to funguje!!! :D :)

 
Nahoru Odpovědět
28.12.2013 10:27
Avatar
Silvinios
Tvůrce
Avatar
Odpovídá na Adamator
Silvinios:28.12.2013 10:27

Pole v Javě má pevnou délku, kterou je třeba zadat při jeho vytvoření. Pokud délku pole neznáš předem a netrápí tě výkon aplikace, je výhodnější použít List.

List<Integer> cisla = Arrays.asList(20, 10, 5);
int soucet = 0;
for (int cislo : cisla) {
    soucet += cislo;
}
 
Nahoru Odpovědět
28.12.2013 10:27
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Silvinios
Kit:28.12.2013 11:12

ArrayList je interně také pole, takže to na výkon aplikace moc velký vliv nemá, ale významným bonusem je elegance některých operací.

Nahoru Odpovědět
28.12.2013 11:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Adamator
Člen
Avatar
Adamator:28.12.2013 11:23

Moc vám všem děkuju... Zde dokládám výslednou aplikaci!

Editováno 28.12.2013 11:24
 
Nahoru Odpovědět
28.12.2013 11:23
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Adamator
Kit:28.12.2013 11:34

Hmm, hezké. Zřejmě to víc už nešlo zkrátit :)

Nahoru Odpovědět
28.12.2013 11:34
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
mnauik
Člen
Avatar
mnauik:28.12.2013 11:56

Asi jsem slepej, ale já žádnou aplikaci nevidím.

Nahoru Odpovědět
28.12.2013 11:56
minusuj mě, ale zdůvodni to ;)
Avatar
Odpovídá na Adamator
Neaktivní uživatel:28.12.2013 12:13

První aplikace, kde ani Kit chybu nenašel :D

Nahoru Odpovědět
28.12.2013 12:13
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:28.12.2013 12:24

Říká se, že pokud aplikace obsahuje alespoň jeden řádek, obsahuje alespoň jednu chybu. Toto tvrzení platí i zde: Kde nic není, tam nemůže být ani chyba.

Nahoru Odpovědět
28.12.2013 12:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Adamator
Člen
Avatar
Adamator:28.12.2013 13:41
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.*;

public class App extends JFrame {
        private static final long serialVersionUID = 1L;

        // Vytváření komponentů
        JPanel jp = new JPanel();
        JTextField ansF = new JTextField();

        JButton b1 = new JButton("1"), b2 = new JButton("2"),
                        b3 = new JButton("3"), b4 = new JButton("4"),
                        b5 = new JButton("5"), b6 = new JButton("6"),
                        b7 = new JButton("7"), b8 = new JButton("8"),
                        b9 = new JButton("9"), b0 = new JButton("0"),
                        bČ = new JButton(","), bE = new JButton("="),
                        bP = new JButton("+"), bM = new JButton("-"),
                        bK = new JButton("*"), bD = new JButton("/"), bPM = new JButton(
                                        "+/-"), bC = new JButton("C"), bMM = new JButton("M-"),
                        bMP = new JButton("M+"), bMRC = new JButton("MRC");



        // Ostatní

        boolean actConfirmed = true, scitani = false, odcitani = false,
                        nasobeni = false, deleni = false;

        double number1, number2, answer, mSouc, pSouc;

        ArrayList<Double> pNums = new ArrayList<Double>();
        ArrayList<Double> mNums = new ArrayList<Double>();

        GridBagConstraints gbc = new GridBagConstraints();

        // Frame
        private static App a;

        // Konstruktor

        public App() {
                // Inicializace
                Init();

                // Práce s FRAMEM
                setVisible(true);
                setTitle("Calculator");
                setSize(285, 420);
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                setLocationRelativeTo(null);
                setResizable(false);
                setLayout(new BorderLayout());

                // Přidávání komponentů do FRAMU
                add(ansF, BorderLayout.NORTH);
                getContentPane().add(jp, BorderLayout.CENTER);
                addingButtons();
                actionButtons();
        }

        // Ostatní metody
        public void Init() {
                ansF.setEditable(false);
                ansF.setFont(new Font("Consolas", 1, 50));
                ansF.setText("0");

                b0.setFont(new Font("Consolas", 1, 25));
                b1.setFont(new Font("Consolas", 1, 25));
                b2.setFont(new Font("Consolas", 1, 25));
                b3.setFont(new Font("Consolas", 1, 25));
                b4.setFont(new Font("Consolas", 1, 25));
                b5.setFont(new Font("Consolas", 1, 25));
                b6.setFont(new Font("Consolas", 1, 25));
                b7.setFont(new Font("Consolas", 1, 25));
                b8.setFont(new Font("Consolas", 1, 25));
                b9.setFont(new Font("Consolas", 1, 25));
                bPM.setFont(new Font("Consolas", 1, 25));
                bC.setFont(new Font("Consolas", 1, 25));
                bP.setFont(new Font("Consolas", 1, 25));
                bM.setFont(new Font("Consolas", 1, 25));
                bK.setFont(new Font("Consolas", 1, 25));
                bD.setFont(new Font("Consolas", 1, 25));
                bE.setFont(new Font("Consolas", 1, 25));
                bČ.setFont(new Font("Consolas", 1, 25));
                bMP.setFont(new Font("Consolas", 1, 20));
                bMM.setFont(new Font("Consolas", 1, 20));
                bMRC.setFont(new Font("Consolas", 1, 15));

        }

        public void addingButtons() {
                jp.setLayout(new GridBagLayout());
                gbc.insets = new Insets(5, 5, 5, 5);
                gbc.gridx = 0;
                gbc.gridy = 0;
                jp.add(bC, gbc);
                gbc.gridx = 1;
                gbc.gridy = 0;
                jp.add(bMP, gbc);
                gbc.gridx = 2;
                gbc.gridy = 0;
                jp.add(bMM, gbc);
                gbc.gridx = 3;
                gbc.gridy = 0;
                jp.add(bMRC, gbc);
                gbc.gridx = 2;
                gbc.gridy = 1;
                jp.add(bK, gbc);
                gbc.gridx = 3;
                gbc.gridy = 1;
                jp.add(bD, gbc);
                gbc.gridx = 0;
                gbc.gridy = 2;
                jp.add(b7, gbc);
                gbc.gridx = 1;
                gbc.gridy = 2;
                jp.add(b8, gbc);
                gbc.gridx = 2;
                gbc.gridy = 2;
                jp.add(b9, gbc);
                gbc.gridx = 3;
                gbc.gridy = 2;
                jp.add(bP, gbc);
                gbc.gridx = 0;
                gbc.gridy = 3;
                jp.add(b4, gbc);
                gbc.gridx = 1;
                gbc.gridy = 3;
                jp.add(b5, gbc);
                gbc.gridx = 2;
                gbc.gridy = 3;
                jp.add(b6, gbc);
                gbc.gridx = 3;
                gbc.gridy = 3;
                jp.add(bM, gbc);
                gbc.gridx = 0;
                gbc.gridy = 4;
                jp.add(b1, gbc);
                gbc.gridx = 1;
                gbc.gridy = 4;
                jp.add(b2, gbc);
                gbc.gridx = 2;
                gbc.gridy = 4;
                jp.add(b3, gbc);
                gbc.gridx = 3;
                gbc.gridy = 4;
                gbc.gridheight = 2;
                gbc.fill = GridBagConstraints.VERTICAL;
                jp.add(bE, gbc);
                gbc.gridx = 0;
                gbc.gridy = 5;
                gbc.gridwidth = 2;
                gbc.gridheight = 1;
                gbc.fill = GridBagConstraints.HORIZONTAL;
                jp.add(b0, gbc);
                gbc.gridx = 2;
                gbc.gridy = 5;
                gbc.gridwidth = 1;
                gbc.gridheight = 1;
                jp.add(bČ, gbc);
                gbc.gridx = 0;
                gbc.gridy = 1;
                gbc.gridwidth = 2;
                gbc.gridheight = 1;
                gbc.fill = GridBagConstraints.HORIZONTAL;
                jp.add(bPM, gbc);

        }

        public void actionButtons() {
                b1.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {

                                if (!actConfirmed) {
                                        ansF.setText(ansF.getText() + "1");
                                } else {
                                        actConfirmed = false;

                                        ansF.setText("");
                                        ansF.setText(ansF.getText() + "1");
                                }
                        }
                });
                b2.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (!actConfirmed) {
                                        ansF.setText(ansF.getText() + "2");
                                } else {
                                        actConfirmed = false;

                                        ansF.setText("");
                                        ansF.setText(ansF.getText() + "2");
                                }
                        }
                });
                b3.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (!actConfirmed) {
                                        ansF.setText(ansF.getText() + "3");
                                } else {
                                        actConfirmed = false;

                                        ansF.setText("");
                                        ansF.setText(ansF.getText() + "3");
                                }
                        }
                });

                b4.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (!actConfirmed) {
                                        ansF.setText(ansF.getText() + "4");
                                } else {
                                        actConfirmed = false;

                                        ansF.setText("");
                                        ansF.setText(ansF.getText() + "4");
                                }
                        }
                });
                b5.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (!actConfirmed) {
                                        ansF.setText(ansF.getText() + "5");
                                } else {
                                        actConfirmed = false;

                                        ansF.setText("");
                                        ansF.setText(ansF.getText() + "5");
                                }
                        }
                });

                b6.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (!actConfirmed) {
                                        ansF.setText(ansF.getText() + "6");
                                } else {
                                        actConfirmed = false;

                                        ansF.setText("");
                                        ansF.setText(ansF.getText() + "6");
                                }
                        }
                });
                b7.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (!actConfirmed) {
                                        ansF.setText(ansF.getText() + "7");
                                } else {
                                        actConfirmed = false;

                                        ansF.setText("");
                                        ansF.setText(ansF.getText() + "7");
                                }
                        }
                });
                b8.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (!actConfirmed) {
                                        ansF.setText(ansF.getText() + "8");
                                } else {
                                        actConfirmed = false;

                                        ansF.setText("");
                                        ansF.setText(ansF.getText() + "8");
                                }
                        }
                });
                b9.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (!actConfirmed) {
                                        ansF.setText(ansF.getText() + "9");
                                } else {
                                        actConfirmed = false;

                                        ansF.setText("");
                                        ansF.setText(ansF.getText() + "9");
                                }
                        }
                });
                b0.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (!actConfirmed) {
                                        ansF.setText(ansF.getText() + "0");
                                } else {
                                        actConfirmed = false;

                                        ansF.setText("");
                                        ansF.setText(ansF.getText() + "0");
                                }
                        }
                });
                bC.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                actConfirmed = true;

                                bP.setBackground(null);
                                bM.setBackground(null);
                                bK.setBackground(null);
                                bD.setBackground(null);
                                ansF.setText("0");

                                number1 = 0;
                                number2 = 0;

                                deleni = false;
                                scitani = false;
                                odcitani = false;
                                nasobeni = false;

                                pSouc = 0;
                                mSouc = 0;

                                pNums.clear();
                                mNums.clear();
                        }
                });
                bP.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (!ansF.getText().equals("")) {
                                        number1 = (Double.parseDouble(String.valueOf(ansF.getText())));
                                        actConfirmed = true;
                                        scitani = true;

                                        bP.setBackground(Color.GREEN);
                                        bM.setBackground(null);
                                        bK.setBackground(null);
                                        bD.setBackground(null);
                                }

                        }
                });
                bM.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (!ansF.getText().equals("")) {
                                        number1 = (Double.parseDouble(String.valueOf(ansF.getText())));
                                        actConfirmed = true;
                                        odcitani = true;

                                        bM.setBackground(Color.GREEN);
                                        bP.setBackground(null);
                                        bK.setBackground(null);
                                        bD.setBackground(null);
                                }
                        }
                });
                bK.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (!ansF.getText().equals("")) {
                                        number1 = (Double.parseDouble(String.valueOf(ansF.getText())));
                                        actConfirmed = true;
                                        nasobeni = true;

                                        bK.setBackground(Color.GREEN);
                                        bD.setBackground(null);
                                        bM.setBackground(null);
                                        bP.setBackground(null);
                                }
                        }
                });
                bD.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (!ansF.getText().equals("")) {
                                        number1 = (Double.parseDouble(String.valueOf(ansF.getText())));

                                        actConfirmed = true;
                                        deleni = true;

                                        bD.setBackground(Color.GREEN);
                                        bK.setBackground(null);
                                        bM.setBackground(null);
                                        bP.setBackground(null);
                                }
                        }
                });
                bPM.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (ansF.getText().equals("0")) {
                                        ansF.setText("-");
                                } else if (ansF.getText().equals("-")) {
                                        ansF.setText("0");
                                } else {
                                        if (!actConfirmed == true) {
                                                double x = (Double.parseDouble(String.valueOf(ansF
                                                                .getText())));
                                                x *= -1;
                                                if (x == (int) x)
                                                        ansF.setText(String.valueOf((int) x));
                                                else
                                                        ansF.setText(String.valueOf(x));
                                        } else
                                                ansF.setText("-");
                                }
                        }
                });
                bČ.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                if (ansF.getText().contains(".")) {
                                        ansF.setText(ansF.getText());
                                } else {
                                        ansF.setText(ansF.getText() + ".");
                                }
                        }
                });
                bE.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                number2 = (Double.parseDouble(String.valueOf(ansF.getText())));

                                actConfirmed = true;

                                if (scitani) {
                                        answer = number1 + number2;
                                        if (answer == (int) answer) {
                                                ansF.setText(String.valueOf((int) answer));
                                        } else
                                                ansF.setText(String.valueOf(answer));
                                }
                                if (odcitani) {
                                        answer = number1 - number2;
                                        if (answer == (int) answer) {
                                                ansF.setText(String.valueOf((int) answer));
                                        } else
                                                ansF.setText(String.valueOf(answer));
                                }
                                if (nasobeni) {
                                        answer = number1 * number2;
                                        if (answer == (int) answer) {
                                                ansF.setText(String.valueOf((int) answer));
                                        } else
                                                ansF.setText(String.valueOf(answer));
                                }
                                if (deleni) {
                                        answer = number1 / number2;
                                        if (number2 == 0) {
                                                JOptionPane.showMessageDialog(a,
                                                                "Nulou dělit nelze!!!", "Chyba",
                                                                JOptionPane.INFORMATION_MESSAGE);
                                        }
                                }
                                if (number2 != 0) {
                                        if (answer == (int) answer) {
                                                ansF.setText(String.valueOf((int) answer));
                                        } else
                                                ansF.setText(String.valueOf(answer));
                                }
                                bD.setBackground(null);
                                bK.setBackground(null);
                                bM.setBackground(null);
                                bP.setBackground(null);

                                number1 = 0;
                                number2 = 0;
                                deleni = false;
                                scitani = false;
                                odcitani = false;
                                nasobeni = false;
                        }
                });
                bMP.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                pNums.add((Double.parseDouble(String.valueOf(ansF.getText()))));
                                actConfirmed = true;
                        }
                });
                bMM.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                pNums.add(-(Double.parseDouble(String.valueOf(ansF.getText()))));
                                actConfirmed = true;
                        }
                });
                bMRC.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {

                                for (int i = 0; i < pNums.size(); i++) {
                                        pSouc += pNums.get(i);
                                }
                                for (int x = 0; x < mNums.size(); x++) {
                                        mSouc += mNums.get(x);
                                }

                                answer = pSouc + mSouc;
                                if (answer == (int) answer) {
                                        ansF.setText(String.valueOf((int) answer));
                                } else
                                        ansF.setText(String.valueOf(answer));

                                pNums.clear();
                                mNums.clear();
                        }
                });
        }

        // Hlavní metoda
        public static void main(String[] args) {
                a = new App();
        }
}
 
Nahoru Odpovědět
28.12.2013 13:41
Avatar
Silvinios
Tvůrce
Avatar
Odpovídá na Kit
Silvinios:28.12.2013 18:36

Jak kdy. Do pole lze na rozdíl od listu ukládat primitivní typy a tam už může být rozdíl ve výkonu celkem znát.

 
Nahoru Odpovědět
28.12.2013 18:36
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.