Imprimir todos os elementos de um ArrayList

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));

		}
3 curtidas

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.

1 curtida

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();
			
		}
	});

}