Galera estou com uma duvida ou mlehor uma falta de lógica, gostaria que me ajudassem.
Tenho uma tela de aviso onde preciso adicionar diversos avisos porém não sei a quantidade de avisos
que podem ser apresentada na tela. ou seja preciso criar uma maneira que o list receba essa quantidade
e vá adicinando.
Alguem pode me dizer como posso fazer isso?
Creio que seria mais ou menos assim:
package testes;
import java.util.ArrayList;
import java.util.List;
public class TesteListAdd {
public static void main(String[] args) {
String[] av = new String[5];
av[0] = "a1";
av[1] = "a2";
av[2] = "a3";
av[3] = "a4";
av[4] = "a5";
List<String> avisos = new ArrayList<String>();
for (int i = 0; i < av.length; i++) {
avisos.add(av[i]);
System.out.println(avisos);
}
}
}
saida:
[a1]
[a1, a2]
[a1, a2, a3]
[a1, a2, a3, a4]
[a1, a2, a3, a4, a5]
com esse processo não consegui:
Queria que fosse fazendo assim:
aviso.add("A1");
aviso.add("A2");
aviso.add("A3");
.
.
.
e a saida:
a1 a2 a3 a4 a5
e assim consecutivamente até finalizar o processo.
Claro que essa é uma classe apenas de exemplo para simplificar o meu problema.
Obs: Devo usar o LIST pois há mais informações a serem contempladas.
Vlw.
Cara…não vejo a necessidade do array…
cria uma lista de String no inicio do programa:
ArrayList<String> avisos = new ArrayList<String>();
e quando precisar adicionar… é só usar…
avisos.add(“AVISO”);
pela List vc tem o tamanho da lista e vc pode pegar os objetos em determinadas posições tb.
abrcs
[quote=duduribeiro]Cara…não vejo a necessidade do array…
cria uma lista de String no inicio do programa:
ArrayList<String> avisos = new ArrayList<String>();
e quando precisar adicionar… é só usar…
avisos.add(“AVISO”);
pela List vc tem o tamanho da lista e vc pode pegar os objetos em determinadas posições tb.
abrcs[/quote]
Isso.
Você pode usar
String aviso=avisos.get(indice);
http://download.oracle.com/javase/6/docs/api/java/util/List.html
[quote=duduribeiro]Cara…não vejo a necessidade do array…
cria uma lista de String no inicio do programa:
ArrayList<String> avisos = new ArrayList<String>();
e quando precisar adicionar… é só usar…
avisos.add(“AVISO”);
pela List vc tem o tamanho da lista e vc pode pegar os objetos em determinadas posições tb.
abrcs[/quote]
Valeu pela resposta. Mas o array coloquei foi apenas para citar como exemplo simples, onde o que quero fazer é exatamente o seguinte.
Não posso colocar avisos.add(“Aviso”) uma quantidade especifica pois não sei o tamanho do array de aviso, pode ser que contenha 5 avisos ou 20 avisos e o eu quero fazer é que o for faça com que avisos.add(" ") adicione a quantidade que for necessária.
Valeu. Vou analisar melhor o contexto.
Se eu entendi bem, o seu próprio código está correto.
O que está ocorrendo é que você está mostrando o seu List dentro do loop.
Logo, na primeira iteração ele contém apenas um elemento, na segundo o primeiro elemento + o que foi adicionado na segunda iteração.
Para você ver o resultado final (e apenas o final) basta fazer a seguinte alteração:
import java.util.ArrayList;
import java.util.List;
public class TesteListAdd {
public static void main(String[] args) {
String[] av = new String[5];
av[0] = "a1";
av[1] = "a2";
av[2] = "a3";
av[3] = "a4";
av[4] = "a5";
List<String> avisos = new ArrayList<String>();
for (int i = 0; i < av.length; i++) {
avisos.add(av[i]);
//System.out.println(avisos);//remova esta linha
}
System.out.println(avisos);//Coloque-a aqui
}
}
É isso que você quer?
[quote=wagner_a_lima]Se eu entendi bem, o seu próprio código está correto.
O que está ocorrendo é que você está mostrando o seu List dentro do loop.
Logo, na primeira iteração ele contém apenas um elemento, na segundo o primeiro elemento + o que foi adicionado na segunda iteração.
Para você ver o resultado final (e apenas o final) basta fazer a seguinte alteração:
import java.util.ArrayList;
import java.util.List;
public class TesteListAdd {
public static void main(String[] args) {
String[] av = new String[5];
av[0] = "a1";
av[1] = "a2";
av[2] = "a3";
av[3] = "a4";
av[4] = "a5";
List<String> avisos = new ArrayList<String>();
for (int i = 0; i < av.length; i++) {
avisos.add(av[i]);
//System.out.println(avisos);//remova esta linha
}
System.out.println(avisos);//Coloque-a aqui
}
}
É isso que você quer?[/quote]
Puts cara é isso mesmo. Nossa que vacilo. Valeu agora posso dar continuidade pois fiz esse exemplo apenas para ver o resultado agora vou transferir para a aplicação.
Valeu.
O ArrayList cresce a medida que você insere dados nele. Você não precisa se preocupar com o tamanho.
Dê uma olhada: http://www.guj.com.br/java/74068-classe-vector#389435