Inicializar Um vetor de string

9 respostas
Gizelma

Oi pessoal,
To tendando criar uma vetor de string para retornar em uma funcçaõ, só que eu não sei o tamanho exato dele, por isso o inicializei com null só que quando vou dar um new ou tento atribuir o valor direto a um campo do vetor dá NullPointerError.
Alguem pode me ajudar com isso??? :roll:

9 Respostas

luiz_ross

Faz algo assim

public String[] retornaArrayString(String valor){
         String[] string = new String[valor.length];

         return string;
       }
Gizelma

O negocio é que eu não sei o tamanho do vetor :cry:

T

Este é o famoso problema do array (que não dá para redimensionar sem ter de copiar e fazer um monte de cálculos). Normalmente, se puder, trabalhe com List, e converta em array se for o caso (se puder, nem use arrays)

Vamos dizer que você tem um List de Strings, criado por exemplo ao percorrer um ResultSet:

List lista = new ArrayList();
while (rs.next()) {
    lista.add (rs.getString ("nome"));
}

Para converter isso em um array, use:

String[] strings = (String[]) lista.toArray (new String[0]);

ou então

String[] strings = (String[]) lista.toArray (new String[lista.size()]);
velo

você também pode usar a o Vector.

Vector a = new Vector();

//metodo add() recupera dados
a.add(String "oi");
a.add(String "tchau");

//metodo get() recupera dados
String adeus = (String) a.get(1);

sysout(adeus);
israelwm

Olá, tentei usar esse ArrayList como proposto no tópico mas naum funcou, alguem sabe porq?

Array:

class Blablabla {
    List arquivos = new ArrayList();
    public Blablabla() {
    
    }

}

erro:

List cannot be resolved (or is not a valid type) for the field SearchFiles.arquivos ArrayList cannot be resolved or is not a type
Thiago_Senna

Talvez vocÊ esqueceu de importar o List e o ArrayList!

coloque as declarações

import java.util.List;
import java.util.ArrayList;

israelwm

Suspeitei desde o princípio

mas bem que o java podia dizer isso neh, ele dah uma mensagem que faz entender que o import está certo.

cu_ringa

ja q n sabe o tamanho do array vc deve usar o Vector, ArrayList ou LinkedList. Mas como já disseram tb vc deverá importar o seguinte pacote: import java.util.*;

israelwm

Pois é, eu tinha esquecido deste pequenho detalhe, q bosta heim

vou postar o código aqui apenas para quem estive acompanhando e encerrar esse assunto de Array e ArrayList:

//Importar específicamente ou apenas: import java.util.*;
import java.util.List;
import java.util.ArrayList;

public class ArrayTest {
    public static void main(String[] args) {
    	//Declaração
    	List lista = new ArrayList();
    	String[] listaStr;

    	//Adicionando
    	
    	lista.add("campo 1");
    	lista.add("campo 2");
    	lista.add("campo 3");
    	
    	//Tamanho do ArrayList. Retorno: 3
    	System.out.println("--- Imprimindo Tamanho do ArrayList ---");
    	System.out.println(lista.size());
    	
    	//Imprimindo todo o ArrayList
    	System.out.println("--- Imprimindo ArrayList ---");
    	for (int i = 0; i < lista.size(); i++) {
    		System.out.println(lista.get(i));
    	}
    	
    	//Convertendo de ArrayList para Array(Matriz)
    	listaStr = (String[]) lista.toArray (new String[0]);
    	
    	//Imprimindo toda a matriz
    	System.out.println("--- Imprimindo Array ---");
    	for (int i = 0; i < listaStr.length; i++) {
    		System.out.println(listaStr[i]);
    	}

    }
}

Retorno

--- Imprimindo Tamanho do ArrayList ---
3
--- Imprimindo ArrayList ---
campo 1
campo 2
campo 3
--- Imprimindo Array ---
campo 1
campo 2
campo 3

Quem não tiver contente que vá toma no google

Criado 25 de novembro de 2004
Ultima resposta 14 de abr. de 2005
Respostas 9
Participantes 7