publicConta(){}publicConta(int...itemConta){//varargsthis.numeroBanco=itemConta[0];this.numeroConta=itemConta[1];this.numeroAgencia=itemConta[2];}//criação dos gets e sets.publicintgetNumeroBanco(){returnnumeroBanco;}publicvoidsetNumeroBanco(intnumeroBanco){this.numeroBanco=numeroBanco;}publicintgetNumeroConta(){returnnumeroConta;}publicvoidsetNumeroConta(intnumeroConta){this.numeroConta=numeroConta;}publicintgetNumeroAgencia(){returnnumeroAgencia;}publicvoidsetNumeroAgencia(intnumeroAgencia){this.numeroAgencia=numeroAgencia;}//metodo para criar um ArrayList e inserção de elementos.publicvoidcriarConta(){contas=newArrayList<>();contas.add(newConta(541,001,1000));contas.add(newConta(542,002,2000));contas.add(newConta(543,003,3000));contas.add(newConta(544,004,4000));}//metodo para percorrer os registros e exibi-los.publicvoidexibirContas(){for(Contaconta:contas){System.out.printf("Banco: %03d\n",conta.getNumeroBanco());System.out.printf("Conta: %03d\n",conta.getNumeroConta());System.out.printf("Ag.: %03d\n",conta.getNumeroAgencia());//Collections.sort(conta,conta.numeroAgencia);//comando para dar um espaço entre os registros.System.out.println("");}}publicstaticvoidmain(String[]args){Contaconta=newConta();conta.criarConta();conta.exibirContas();}@OverridepublicintcompareTo(Objectarg0){// TODO Auto-generated method stubreturn0;}publicvoidordenarConta(){PorBanco(){publicintcompare(Contaone,Contaother){returnone.getNumeroBanco.compareTo(other.getNumeroBanco());}}PorNomeconta(){publicintcompare(Contaone,Contaother){returnone.getNumeroConta().compareTo(other.getNumeroConta());}}publicabstractintcompare(Contaone,Contaother);publicComparatorasc(){returnthis;}publicComparatordesc(){returnCollections.reverseOrder(this);}}