Pessoal preciso em determinada parte do meu projeto imprimir todos os elementos de um ArrayList.
Tem como isso ser feito? Tentei de várias formas e não obtive sucesso.
Pessoal preciso em determinada parte do meu projeto imprimir todos os elementos de um ArrayList.
Tem como isso ser feito? Tentei de várias formas e não obtive sucesso.
Eh isso?
[code] ArrayList al = new ArrayList();
al.add(“Teste”);
al.add(new Integer(1));
al.add(new Long(2));
al.add(new Float(3.3));
al.add(Boolean.TRUE);
Iterator it = al.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}[/code]
Existem várias maneiras esta é uma delas.
ArrayList lista = new ArrayList();
lista.add("elemento 1");
lista.add("elemento 2");
lista.add("elemento 3");
lista.add("elemento 4");
lista.add("elemento 5");
lista.add("elemento 6");
while(!lista.isEmpty()){
System.out.println(lista.remove(0));
}
ArrayList array = new ArrayList();
array.add("teste1");
array.add("teste2");
array.add("teste3");
array.add("teste4");
array.add("teste5");
array.add("teste6");
for (int i = 0; i < array.size(); i++) {
System.out.println(array.get(i));
}
ArrayList array = new ArrayList();
array.add("teste1");
array.add("teste2");
array.add("teste3");
array.add("teste4");
array.add("teste5");
array.add("teste6");
for (String s:array)
System.out.println(s);
assim tb funciona mas somente na 1.5
Pessoal valeu mesmo, agora tá imprimindo direito.
Só mais uma coisa: sei que eu determinada linha do meu ArrayList tem um determinado caracter na String, como eu faço para varrer o ArrayList para localizar esse determinado caracter?
Segue exemplo:
[code] ArrayList al = new ArrayList();
al.add(“abc”);
al.add(“def”);
al.add(“ghi”);
Iterator it = al.iterator();
int index;
String str;
for (int i = 0; i < al.size(); i++) {
str = (String)it.next();
index = str.indexOf('e');
if (index > -1) {
System.out.println("'e' é o "+(index+1)+"° caractere do "+(i+1)+"° elemento do array!");
i = al.size();
}
}[/code]
Obs.: incrementei em 1 aos indices para representar a posicao do caractere e do elemento. Nao esquecer que para o nosso amigo Java comeca em 0 e nao em 1.
Cara muito legal o que vc postou, já estou utilizando, porém tentei implementar algo a mais. Tentei após a identificação do caracter p no ArrayList que ele imprimisse as 3 posições posteriores e dentro dessas 3 posições só quero a impressão dos 2 primeiros caracteres. Olha o meu código:
Iterator it = dadosTotal.iterator();
int index;
String str;
for (int i = 0; i < dadosTotal.size(); i++) {
str = (String)it.next();
index = str.indexOf('p');
if (index > -1) {
System.out.println("'p' é o "+(index+1)+"° caractere do "+(i+1)+"° elemento do array!");
i = dadosTotal.size();
for(int x = i; x < x + 3; x++){
System.out.println(dadosTotal.get(i).toString().substring(1, 2));
}
}
}
Mas essa rotina dá o seguinte exception:
'p' é o 1° caractere do 3° elemento do array!
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 18, Size: 18
at java.util.ArrayList.RangeCheck(ArrayList.java:546)
n.o de bytes lidos : 1
at java.util.ArrayList.get(ArrayList.java:321)
at br.com.alimentoswilson.serial.SCom.ImprimeArray(SCom.java:274)
at br.com.alimentoswilson.serial.Main.main(Main.java:46)
n.o de bytes lidos : 2
Será que estou fazendo algo de errado?
O problema eh que vc esta atribuindo para i o tamanho de dadosTotal (essa atribuicao eh utilizada para interromper o for):
i = dadosTotal.size();
Depois vc inicializa x com o valor de i e repete o laço enquanto x for menor que x+3
for(int x = i; x < x + 3; x++){
System.out.println(dadosTotal.get(i).toString().substring(1, 2));
}
Desta forma caso o seu dadosTotal tenha um tamanho 5, por exemplo, o seu laco inicia em 5 (o que ja gera o IndexOutOfBoundsException) e tenta repetir a iteracao ateh 7.
Abaixo segue o codigo que imprime os 3 caracteres seguintes ao ‘p’:
Iterator it = dadosTotal.iterator();
int index;
String str;
for (int i = 0; i < dadosTotal.size(); i++) {
str = (String)it.next();
index = str.indexOf('p');
if (index > -1) {
System.out.println("'p' é o "+(index+1)+"° caractere do "+(i+1)+"° elemento do array!");
index++;
if (index >= str.length()) {
System.out.println("'e' é o último caractere");
} else if (index+3 > str.length()) {
System.out.println(str.substring(index, str.length()));
} else {
System.out.println(str.substring(index, index+3));
}
break;
}
}
Cara valeu pela ajuda mas eu não quero que imprima os 3 caracteres posteriores ao p e sim as 3 posições do ArayList posteriores a posição do ArrayList.
Arrumei o meu código (postei abaixo) ficou da seguinte forma.
Iterator it = dadosTotal.iterator();
int index;
String str;
for (int i = 0; i < dadosTotal.size(); i++) {
str = (String)it.next();
index = str.indexOf('p');
if (index > -1) {
System.out.println("'p' é o "+(index+1)+"° caractere do "+(i+1)+"° elemento do array!");
for(int x = i + 1; x < i + 5; x++){
System.out.println(dadosTotal.get(x));
System.out.println("Valor de x: " + x);
}
i = dadosTotal.size();
}
}
Cara valeu mesmo pela força.
Legal. Soh cuida com o seu segundo for. Caso dadosTotal nao tenha 3 elementos posteriores a posicao i ira gerar um IndexOutOfBoundsException.
Caso vc nao queira levantar excecao e apenas imprimir os elementos caso existam seria legal incluir um teste:
Iterator it = dadosTotal.iterator();
int index;
String str;
for (int i = 0; i < dadosTotal.size(); i++) {
str = (String)it.next();
index = str.indexOf('p');
if (index > -1) {
System.out.println("'p' é o "+(index+1)+"° caractere do "+(i+1)+"° elemento do array!");
for(int x = i + 1; x < i + 4 && x < dadosTotal.size(); x++){
System.out.println(dadosTotal.get(x));
System.out.println("Valor de x: " + x);
}
i = dadosTotal.size();
}
}
Se vc quiser imprimir os tres elementos seguintes deve utilizar i + 4 ao inves de i + 5.
Legal. Valeu.
alguém me da uma ajuda aew, como eu faço pra imprimir apenas 1 valor da minha ArrayList. No exemplo, quero imprimir aquele que contem a escrita ‘cd’
import java.util.ArrayList;
class TestaEntrada {
public static void main(String[] args) {
ArrayList a1 = new ArrayList();
a1.add("ab");
a1.add("cd");
}
}
VLW
a1.get(0) contém o valor da primeira posição do arraylist, e a1.get(1) o valor da segunda posição.
Para imprimir somente o que você procura, basta percorrer sua arraylist ate o im e comparar as strings ou os caracteres.
{
. . .
a1.add(“ab”);
a1.add(“bc”);
a1.add(“cd”);
. . .
for(int x = 0; x < dadosTotal.size() - 1; x++)
if(a1.equals(“bc”))
System.out.println("String encontrada na posição: " + x);
. . .
}
preciso criar uma ArrayList com um nome de objeto “exemploX”
isso é no meio do programa então como eu faço pra não ficar criando vários objetos com o mesmo nome e mesmo assim poder correr a arraylist em busca de determinadas informações ?
Quero fazer um sistema sem usar um banco a principio. Porem quero fazer um sistema de cadastro, na qual o usuario irá cadastrar apenas 1 produto e quando for fazer a consulta carregue todas as informações do mesmo. Segue o codigo
package Interface;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class cadastroEmprestimo extends JFrame {
private JPanel contentPane = new JPanel ();
private JLabel rotulo1 = new JLabel ("Empréstimo");
private JLabel rotulo7 = new JLabel ("Código: ");
private JLabel rotulo2 = new JLabel ("Nome do Filme:");
private JLabel rotulo3 = new JLabel ("Ano:");
private JLabel rotulo4 = new JLabel ("Validade do Emp...:");
private JButton botao = new JButton ("Salvar");
private JTextField campo1 = new JTextField();
private JTextField campo2 = new JTextField();
private JTextField campo3 = new JTextField();
private JTextField campo4 = new JTextField();
private JTextField campo5 = new JTextField();
public cadastroEmprestimo(){
super("Cadastro de Emprestimo");
this.setBounds(160, 50, 300, 280);
getContentPane().setLayout(null);
rotulo1.setBounds(100, 20, 120, 20);
this.add(rotulo1);
rotulo7.setBounds(20, 60, 120, 20);
this.add(rotulo7);
rotulo2.setBounds(20, 90, 120, 20);
this.add(rotulo2);
rotulo3.setBounds(20, 120, 120, 20);
this.add(rotulo3);
rotulo4.setBounds(20, 150, 120, 20);
this.add(rotulo4);
campo1.setBounds(150, 60, 50, 20);
this.add(campo1);
campo2.setBounds(150, 90, 100, 20 );
this.add(campo2);
campo3.setBounds(150, 120, 60, 20);
this.add(campo3);
campo4.setBounds(150, 150, 60, 20);
this.add(campo4);
botao.setBounds(100, 200, 80, 20);
this.add(botao);
botao.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
ArrayList al = new ArrayList();
al.add(campo1);
al.add(campo2);
al.add(campo3);
al.add(campo4);
al.add(campo5);
System.exit(0);
}
});
}
}
package Interface;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Consulta extends JFrame {
private JPanel contentPane = new JPanel();
private JLabel rotulo1 = new JLabel ("Consultar Emprestimo ");
private JLabel rotulo2 = new JLabel ("Código: ");
private JLabel rotulo3 = new JLabel ("Nome: ");
private JLabel rotulo4 = new JLabel ("Descrição: ");
private JLabel rotulo5 = new JLabel ("Validade: ");
private JLabel rotulo6 = new JLabel ("Qtd de Renovação: ");
private JButton botao = new JButton ("Consultar");
private JButton botao2 = new JButton ("Voltar");
private JTextField campo1 = new JTextField();
private JTextField campo2 = new JTextField();
private JTextField campo3 = new JTextField();
private JTextField campo4 = new JTextField();
private JTextField campo5 = new JTextField();
private JTextField campo6 = new JTextField();
public Consulta(){
super("Consulta Emprestimo");
this.setBounds(160, 50, 300, 280);
getContentPane().setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
rotulo1.setBounds(80, 30, 150, 20);
this.add(rotulo1);
rotulo2.setBounds(20, 60, 120, 20);
this.add(rotulo2);
rotulo3.setBounds(20, 90, 120, 20);
this.add(rotulo3);
rotulo4.setBounds(20, 120, 120, 20);
this.add(rotulo4);
rotulo5.setBounds(20, 150, 120, 20);
this.add(rotulo5);
rotulo6.setBounds(20, 180, 120, 20);
this.add(rotulo6);
String cod= campo1.getText();
campo1.setBounds(100, 60, 30, 20);
campo1.setToolTipText("");
this.add(campo1);
String nome = campo2.getText();
campo2.setBounds(100, 90, 120, 20);
campo2.setToolTipText("");
this.add(campo2);
String descricao = campo3.getText();
campo3.setBounds(100, 120, 120, 20);
campo3.setToolTipText("");
this.add(campo3);
String validade = campo4.getText();
campo4.setBounds(100, 150, 120, 20);
campo4.setToolTipText("");
this.add(campo4);
String renovacao = campo5.getText();
campo5.setBounds(150, 180, 50, 20);
campo5.setToolTipText("");
this.add(campo5);
botao.setBounds(150, 60, 95, 20);
this.add(botao);
botao2.setBounds(150, 60, 95, 20);
this.add(botao2);
botao.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e){
//* Apartir do if da erro *//
if(campo1.getText().equals(String.valueOf(al.campo1()))){
campo2.getText(al.campo2);
campo3.getText(al.campo3);
campo4.getText(al.campo4);
campo5.getText(al.campo5);
break;
cadastroEmprestimo cad = new cadastroEmprestimo();
} else{
JOptionPane.showMessageDialog(null, "Cliente Não Encontrado");
}
}
});
botao2.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e){
Emprestimo emp = new Emprestimo();
emp.setVisible(true);
dispose();
}
});
}