preciso de ajuda o que a de errado com esse metodo
class Automovel {
private String nome;
private float velocidade;
public Automovel (String nome,float velocidade){
this.nome=nome;
this.velocidade =velocidade;
}
public String getNome() {
return this.nome;
}
public float getVelocidade() {
return this.velocidade;
}
}
public class ordenacaoautomovel{
public static void main(String[] args){
Automovel[] auto = new Automovel[20];
auto[0] = new Automovel("Xsara",210.0f);
auto[1] = new Automovel("Golf",200.0f);
auto[2] = new Automovel("Corsa",150.0f);
auto[3] = new Automovel("Corolla",205.0f);
}
}
class Contaelemento{
public static int contador(Automovel [] v){
int j;
j=0;
for(int i=0;i<v.length;i++){
if("".equals(v[i].getNome())){
j= j+1;// ELA NAO ACEITA A ATRIBUIÇÃO
}
}
return j;
}
}
int p=Contaelemento.contador(auto);
System.out.println(p);
so imrpimi o valor atribuido a ele em cima antes do for ou seja 0 eu preciso conta os vlores nao nulos de um array e retornar o valor
j=0;
for(int i=0;i<v.length;i++){
if("".equals(v[i].getNome())){
j= j+1;// ELA NAO ACEITA A ATRIBUIÇÃO
}
}
Você está incrementando o contador j somente quando o elemento não tem o nome preenchido(string “”). E no seu exemplo todos estão preenchidos. Então vai retornar zero sempre
Se você quer contar os elementos não nulos faça assim:
j=0;
for(int i=0;i<v.length;i++){
//Se o nome nem é nulo e não-vazio então incrementa
if( (v[i].getNome() != null) && !(v[i].getNome().isEmpty())){
j= j+1;
}
}
[quote=jobs]preciso de ajuda o que a de errado com esse metodo
class Automovel {
private String nome;
private float velocidade;
public Automovel (String nome,float velocidade){
this.nome=nome;
this.velocidade =velocidade;
}
public String getNome() {
return this.nome;
}
public float getVelocidade() {
return this.velocidade;
}
}
public class ordenacaoautomovel{
public static void main(String[] args){
Automovel[] auto = new Automovel[20];
auto[0] = new Automovel("Xsara",210.0f);
auto[1] = new Automovel("Golf",200.0f);
auto[2] = new Automovel("Corsa",150.0f);
auto[3] = new Automovel("Corolla",205.0f);
}
}
class Contaelemento{
public static int contador(Automovel [] v){
int j;
j=0;
for(int i=0;i<v.length;i++){
if("".equals(v[i].getNome())){
j= j+1;// ELA NAO ACEITA A ATRIBUIÇÃO
}
}
return j;
}
}
int p=Contaelemento.contador(auto);
System.out.println(p);
so imrpimi o valor atribuido a ele em cima antes do for ou seja 0 eu preciso conta os vlores nao nulos de um array e retornar o valor
[/quote]
public static int contador(Automovel[] v){
// inicializei a variável
int j = 0;
// Para cada valor de v, armazeno em auto (Automovel) ...pesquise sobre foreach
for(Automovel auto : v){
// Se auto tem instância e nome do automóvel diferente de vazio...então incremento o contador.
if(auto != null && !auto.getNome().isEmpty()){
j++;
}
}
return j;
}
}