Imprimir todos os elementos de um ArrayList

16 respostas
P

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.

16 Respostas

Marcel_Horner

Eh isso?

ArrayList<Object> al = new ArrayList<Object>();
        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());
        }
H

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

		}
wellington79

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

P

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?

Marcel_Horner

Segue exemplo:

ArrayList<Object> al = new ArrayList<Object>();
        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();
            }
        }

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.

P

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?

Marcel_Horner

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;
    }
}
P

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.

Marcel_Horner

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.

P

Legal. Valeu.

A

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

T

a1.get(0) contém o valor da primeira posição do arraylist, e a1.get(1) o valor da segunda posição.

gpd38

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

. . .
}

C

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 ?

P

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

}
Criado 21 de agosto de 2006
Ultima resposta 25 de nov. de 2014
Respostas 16
Participantes 10