Acessar vetor em List

2 respostas
java

Olá amigos,

Cliente uma lista de vetores…

List<String[]> lcli = new ArrayList<String[]>();

Os vetores possue id, nome e telefone (0,1,2 respectivamente)

O primeiro item do list é o título dos dados.

estou tentando acessar como:

lcli.get(0).[1];

ou seja, linha 0 do List, coluna 1 do vetor, teria que me retornar “nome”
mas não funfa!

get(0) eu pego o primeiro item da lista, mas como eu pego o primeiro item do vetor que está dentro da lista?
:?:
Valeu!!!

2 Respostas

evertonsilvagomesjav

E assim:

List<String[]> lcli = new ArrayList<String[]>(); 
    	
    	String[] teste = new String[1];
    	
    	teste[0] = "everton";
    	
    	lcli.add(teste);
    	
    	System.out.println(lcli.get(0)[0]);
E

Outra sugestão:

Crie uma classe do tipo linha:
public class Linha {

  private String[] m_buffer;
  private int m_cols;

  //-----------------------------------
  
  public Linha(int cols)
  {
    super();
       
    m_cols = cols;
    // Aloca somente a referência,
    // não os objetos string
    m_buffer = new String[cols];
    // Aloca os objetos do tipo string
    bufAlloc();
  }
  
  //-----------------------------------
  
  private void bufAlloc()
  {
  	for (int i=0;i<m_cols;i++) {
  		m_buffer[i] = new String();
  	}  	
  }
  
  //-----------------------------------
  
  // para adicionar o conteúdo na columa
  public void set(int col, String txt) 
  {
  	if (col < m_cols) {
  		m_buffer[col] = txt;
  	}  	
  }
  
  //-----------------------------------
  
  // pode sobrecarregar se quiser
  public void set(int col, int num) 
  {
  	add(col,String.valueOf(num));  	
  }
  
  //-----------------------------------
  
  // para recuperar
  public String getText(int col)
  {
  	if (col < m_cols) {
  		return m_buffer[col];
  	}
  	
  	return new String("Erro");  	
  }
  
  //-----------------------------------
  
//para recuperar
  public int getInt(int col)
  {
  	try {
  		return Integer.parseInt(m_buffer[col]);
  	}
  	catch (Exception e) {
  		return 0;
  	}  	
  }
  
  //-----------------------------------
  
} // end class

Agora em vez de criar uma lista de String[] é só criar uma
lista de Linha.

Linha lin = new Linha(10);

e adicionar a a sua linha.

Se quiser melhorar um pouco mais...

Derive Cliente de Linha :

public class Cliente extends Linha {

  public Cliente()
  {
     super(2);
  }

  public void setCodigo(int codigo)
  {
     set(0,codigo); 
  }

  public void setNome(String nome)
  {
     set(1,nome); 
  }

  public int getCodigo()
  {
     return getInt(0);
  }

  public int getNome()
  {
     return getText(1);
  }
 
}

O código fica maior, mas, mais fácil de compreender. (eu acho)
Espero ter ajudado

Criado 20 de setembro de 2010
Ultima resposta 20 de set. de 2010
Respostas 2
Participantes 3