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?
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.
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.
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):
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);
}
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.
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!