Java, exercício de análise
assunto: arraylist, equals
pergunta: qual o output do seguinte:
package recursopa2; import java.util.ArrayList; import java.util.List; class Inteiro { private int i; public Inteiro(int i) { this.i = i; } public void setVal(int i) { this.i = i; } public int getVal() { return i; } public String toString() { return "" + i; } } class main { public static void main(String[] args) { List<Inteiro> listaInteiros = new ArrayList<>(); //criado um arraylist de listaInteiros Inteiro i = new Inteiro(10); Inteiro j = new Inteiro(10); System.out.println(i == j); //saida: falso //porque estão em referências diferentes System.out.println(i.equals(j)); //saida: falso //o equals faz a comparação que nos programamos lá dentro //por exemplo comparar conteudos //mas o equals não foi definido, e não dá erro porque //está a usar a do object, class Inteiro extends object //e a equals no object considera dois objetos iguais //se tiverem o mesmo endereço listaInteiros.add(i); listaInteiros.add(j); j = i; //j refere o i j.setVal(2); //o primeiro elemento do array list fica 2 System.out.println(i); //saida: 2 System.out.println(j); //saida: 2 System.out.println(listaInteiros.get(0)); //saida: 2 System.out.println(listaInteiros.get(1)); //saida: 10 } }
Tags : java, Programação avançada
0 thoughts on “Java, exercício de análise”