Diskuze: Pole a ArrayList
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

					Člen				
			
											
						    
                                
                                    Odpovídá na Adamator                                
								
							
						
						
Juraj Mlich:28.12.2013 10:09
						 
					
					
					
					
				
				
			Juraj Mlich:28.12.2013 10:09
Prejdi ich v cykle a pričítavaj ich k premennej vytvorenej mimo cyklu...
											
						    
                                
                                    Odpovídá na Adamator                                
								
							
						
						
Silvinios:28.12.2013 10:27
						 
					
					
					
					
				
				
			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;
}
					
											
						    
                                
                                    Odpovídá na Silvinios                                
								
							
						
						
Kit:28.12.2013 11:12
						 
					
					
					
					
				
				
			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í.
											
						    
                                
                                    Odpovídá na Neaktivní uživatel                                
								
							
						
						
Kit:28.12.2013 12:24
						 
					
					
					
					
				
				
			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.
					
					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();
        }
}
					
											
						    
                                
                                    Odpovídá na Kit                                
								
							
						
						
Silvinios:28.12.2013 18:36
						 
					
					
					
					
				
				
			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.
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.
				

 