Daí galera beleza?
Eu tenho uma variável double que, quando dá números com vírgula, ela deixa, por exemplo, 14,[telefone removido]. Teria como arredondar para um valor, tipo 14,67? Ou só deixar as duas casa depois da vírgula?
Obrigado!
André.
Daí galera beleza?
Eu tenho uma variável double que, quando dá números com vírgula, ela deixa, por exemplo, 14,[telefone removido]. Teria como arredondar para um valor, tipo 14,67? Ou só deixar as duas casa depois da vírgula?
Obrigado!
André.
Olá,
de uma lida aqui
http://java.sun.com/docs/books/tutorial/i18n/format/decimalFormat.html
Tem exemplos também.
[]´s
Ok, valeu cara!
Me surgiu uma dúvida também quanto a ArrayList. Eu posso diminuir o tamanho de uma variável ArrayList depois de já ter definido seu tamanho?
ArrayList é dinamico isso significa que sim cara… mas geralmente quando se cria um ArrayList não colocar um tamanho inicial para ele… Você não está se confundindo com []…(array).
public ArrayList<Integer> rafael = new ArrayList<Integer>();
rafael.add(15);
rafael.add(43);
rafael.remove(o);
rafael.remove(new Integer(43));
Espero ter ajudado
Note que eu disse que geralmente não se inicial um ArrayList com um valor inicial, não disse que não pode!!!
Cara acho que vc está misturando as coisas objetos do tipo ArrayListão tem tamanho ficho, já array de objetos tem tamanho ficho, e eu “acho” que não da pata diminuir não.
Pois é.
Estou usando array normal (primitivo, o []). E precisava, em minha aplicação, diminuir o array conforme algumas operações são feitas. Gostaria de saber se eu terei de mudar meu array primitivo para ArrayList, ou Vector, sei lá.
Qual seria a melhor opção?
Mude para um List, pode ser o ArrayList.
Você poderia criar um array menor, e depois copiar os dados do antigo para o novo array com System.arrayCopy. Mas isso é mais trabalhoso e sujeito a erros do que usar a classe pronta.
Além do que, o ArrayList te fornece uma série de outras vantagens.
Você poderia criar um array menor, e depois copiar os dados do antigo para o novo array com System.arrayCopy. Mas isso é mais trabalhoso e sujeito a erros do que usar a classe pronta.
Mas agora, supondo que eu tenha um ArrayList de 20 posições chamado vetor. Se eu diminuir para 10 a quantidade de elementos, o vetor fica com 10 posições? Eu teria que usar o remove()? E ele não removeria somente os elementos, mas deixaria o tamanho?
O que estou intrincado é que eu não posso usar outro vetor no final. Somente a o vetor que fiz no construtor.
(Deixei em negrito porque é outra dúvida: caso eu tenha feito no construtor o tamanho do vetor, ainda assim posso mudar o tamanho do mesmo?)
Valeu!
Abraço!
Amigo eu acho que você está confundindo as coisas… Dê uma lida sobre ArrayList que você vai entender melhor… Sobre a sua pergunta se você tiver 20 elementos e remover 10 com o metodo remove() sim você excluirá esses dez… e seu ArrayList agora o tamanho dele é de 10 use o metodo size() para ver o tamanho do ArrayList depois que voce remover!!!
Abraços e dê uma lida sobre ArrayList… Ou melhor sobre a Interface List. :!:
Internamente a classe removeria os elementos e deixaria o tamanho. Métodos como size() vão te retornar a quantidade e elementos dentro do ArrayList, não o tamanho interno dele.
Não sei se existe uma forma de forçar a diminuição. Na classe Vector tem, mas daí vc tem a penalidade da sincronização.
Em todo caso, se tem que ser com array, crie um array menor, copie o conteúdo do antigo para esse array menor usando System.arraycopy e depois substituia o array antigo pelo novo. É a única forma de se fazer isso. Uma vez criado, o tamanho de um array é imutável.
Pois é. É bem isso que eu precisava. 
Só que na mesma variável, sabe?
Edit1: ViniGodoy, lembro que isso já gerou uma discussão aqui no fórum (discussão do bem :D).
Eu até pensei agora em fazer, por exemplo, um método com um novo array que recebe o seu tamanho menor do que o array principal. Só que, na hora de eu fazer
vetorOriginal = arrayNovo;
Daria certo isso? Quero dizer, o meu vetorOriginal ficaria com o tamanho do arrayNovo? Não tenho JVM aqui senão já testava, mas estou no pc de outro curso na faculdade.
Abraço.
Edit2
@Raff, eu li o JavaDoc da classe ArrayList, porém vejamos o que ela fala:
removepublic Object remove(int index)
Removes the element at the specified position in this list. Shifts any subsequent elements to the left (subtracts one from their indices).
Sobre a interface List eu teria que pegar um pouco mais de documentação, porque eu estou aprendendo interfaceS ainda. No caso, eu teria que implementar todos os métodos da interface, certo? (por ser uma interface). Teria como extender ela em vez de implementar? 
Grato.
Sö uma coisa… pq precisa ser um array primitivo e não pode ser um ArrayList?
E por que você precisa ser tão absolutamente econômico?
Você pode criar uma classe “MemoryEconomicList” que faça isso para vc. Extenda abstract list e encapsule o comportamento do array numa lista, fazendo as operações de cópia sempre que adicionar ou remover um objeto.
Desculpe-me se pareci econômico demais. Estou pensando mesmo em mudar de primitivo para ArrayList…
Amanhã (quinta-feira) a noite eu farei isso e postarei o resultado (se foi possível ou não). Não posso fazer antes por causa da faculdade.
Abraços e obrigado a todos.