De objeto para String

olá, sou novo no fórum mas tenho uma dúvida.
Criei um vetor com 10 posições, e quero retornar o tamanho (length)dos objetos em determinadas posições, mas ñ consigo transformá-los em string para fazer a contagem de caracteres. Como faço pro sistema interpretar os objetos inseridos no vetor como sendo Strings?

Desde já agradeço;

Gregori Maus

hhmm, desculpe mas acho que não entendi muito bem…

esse array seria do que …?? String’s?!?
vou arriscar…

[code]
public class Objetos {
public static void main(String[] args) {
Object[] stringDeObjeto = new String[10];

	System.out.println(stringDeObjeto.length);
}

}
[/code]por acaso seria isso???

[]'s

Luciano

talvez a pergunta tenha ficado meio confusa mesmo…
o lance é que eu criei este vetor com 10 posições, onde serão inseridos os nomes de pessoas.
Logo quero criar uma função que verifique esses nomes e me escreva o maior nome e a posição dele, tipo se o “Fabrício” for o maior nome no vetor e estiver na posição 3, me retorne “Fabrício, 3”.
Mas não tô conseguindo pois quando tento usar a função “length” pra contar os caracteres, a IDE me indica que é impossível utilizar esta função com um objeto (pois dentro dos vetores eles são objetos) e sim somente com Strings.
Talvez exista outra forma de fazer esta função sem contar os caracteres, mas como achei esta a forma mais fácil tentei assim, só que infelizmente não tá funcionando.
Se puder ajudar fico muito grato.

Abraços

Pergunta:

Se ele é um vetor de nomes, por que não é um vetor de String? Seria um vetor de Pessoa?

cara, não saquei. tem como criar um vetor de strings?

eu tô fazendo assim:[code]

import java.util.Vector;

public Class Cadastros {

public static void main (String [] args) {

      Vector vt = new Vector (2);

     vt.add ("Marcelo");
     vt.add ("Edivânio");      <- aqui dentro eles são inseridos como objetos não?

     String x = vt.elementAt (1); <- quando tento fazer isto para depois contar os caracteres ele me diz que ñ dá
                                                   pois o elemento é um objeto e ñ pode ser iqualado à uma String.

}

}[/code]

Sacou?
Tem outra forma de fazer?

Você pode fazer um cast:

String x = (String) vt.elementAt (1);

Ou usar o generics:

Vector<String> vt = new Vector<String>(2);

Talvez você queira já ir se acostumando a usar a flexibilidade de programar orientado a interfaces e não implementações:

List<String> vt = new Vector<String>(2);

Se você já sabe o tamanho que a lista vai ter, pode ser interesante iniciá-la, como você fez. Assim você não paga o custo de realocação quando a capacidade atual é alcançada, mas isso só vale pra listas grandes.

List<String> vt = new Vector<String>();

E por fim, talvez você não queira pagar o custo de um List sincronizado, e com o tamanho dobrado cada vez que o limite é alcançado (em vez de 50% no caso do ArrayList):

List<String> vt = new ArrayList<String>();

Ah, desse jeito você pega o elemento com get:

String x = vt.get(1);

legal o exemplo do ozix, mas pensei que estivesse precisando de algo parecido com isso…

[code]public class Objetos {
public static void main(String[] args) {
String[] nomes = { “Gregori”, “Bruno”, “Luciano”, “Ozix” };
int maior = 0;
int posicao = 0;

	for (int i = 0; i < nomes.length; i++) {
		if (nomes[i].length() > maior) {
			maior = nomes[i].length();
			posicao = i;
		}
	}

	System.out.println("\n\tMaior nome: " + nomes[posicao] + " Posição: "
			+ posicao);

}

}[/code][]'s

Luciano

Na verdade meu post foi pra tirar a dúvida inicial do tópico que era como pegar o uma String de um Vector não parametrizado, mas seu programa é o que responde ao que ele explicou depois. Bom de qualquer formar fica aí uma dica sobre o uso do List. :slight_smile:

Valeu Ozix pela ajuda na questão, foi muito esclarecedor, e valeu Luciano por resolver o problema.
Muito boa a iniciativa deste fórum e só de início já deu pra ver a qualidade dos usuários!

Obrigado a todos!