Do nového roku jako lepší programátoři? Znovu otevíráme večerní školu programování. Nette framework, návrhové vzory, testování nebo vůbec poprvé kurzy ASP.NET dostupné odkudkoli v republice.
Avatar
Adamator
Člen
Avatar
Adamator:

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
Redaktor
Avatar
Odpovídá na Adamator
Juraj Mlich:

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

Nahoru Odpovědět  +2 28.12.2013 10:09
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Adamator
Člen
Avatar
Odpovídá na Juraj Mlich
Adamator:

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

 
Nahoru Odpovědět 28.12.2013 10:27
Avatar
Silvinios
Redaktor
Avatar
Odpovídá na Adamator
Silvinios:

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
Redaktor
Avatar
Odpovídá na Silvinios
Kit:

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:

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
Redaktor
Avatar
Odpovídá na Adamator
Kit:

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

Nahoru Odpovědět  +3 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:

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

Nahoru Odpovědět  +2 28.12.2013 11:56
minusuj mě, ale zdůvodni to ;)
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Adamator
Jiří Gracík:

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

Nahoru Odpovědět  +5 28.12.2013 12:13
Creating websites is awesome till you see the result in another browser ...
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jiří Gracík
Kit:

Ří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  +2 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:
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
Redaktor
Avatar
Odpovídá na Kit
Silvinios:

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.