ArrayList

6 respostas
S

Pessoal,

estou postando este topico pq o titulo do outro não ficou legal mesmo e agora esta sendo mais objetivo.

Eu to compilando o programa que o LUBs me passou (obrigado!) e ta dando um erro na linha 38 diz: " <identifier> expeted". acho que esta faltando alguma coisa, mas eu ja importei tudo!

import java.util.ArrayList;
import java.util.List;
import java.util.Collections;
import java.util.Comparator;

public class Main 
{ 

    class Aluno 
    { 
       private int media; 
       private String nome; 

       public Aluno (String nome, int media) 
       { 
          this.media = media; 
          this.nome = nome; 
       } 

       public int getMedia() 
       { 
          return media; 
       } 

       public String getNome() 
       { 
          return nome; 
       } 

    } 

       void add(String nome, int media) 
       { 
          list.add(new Abc(nome, media)); 
       } 
    
    
 Collections.sort(list, new Comparator<Aluno>() 
      { 

         public int compare(Aluno o1, Aluno o2) 
         { 
            return o1.getMedia() - o2.getMedia(); 
         } 
      }); 

    
    public static void main(String[] args) {

        List<Abc> list = new ArrayList<Abc>(); 

    }    
    
}

Como sempre agradeço qq ajuda.

Abs

6 Respostas

S

Tire o lixo q restou do código
Ele não reconhece o “<Aluno>”, tire ele.

Abaixo tire tbm “<Abc>”

T

o problema no teu caso é que estais complilando com o source 1.4 do java, aí os identificadores das collections não funcionam.
Se tiver o JDK 5 na tua máquina é só compilar com o parametro “-source 1.5” ou se estiver utilizando o eclipse altere a propriedade nos properties do projeto.
Se quiser compilar no 1.4 é só retirar os identificadores, funcionará igual.

[]´s

Tchê

Éverton da Silva Amorim
SCJP, SCJD, SCEA

Existem 10 tipos de pessoas no mundo. As que conhecem números binários e as que não conhecem.

T

o problema no teu caso é que estais complilando com o source 1.4 do java, aí os identificadores das collections não funcionam.
Se tiver o JDK 5 na tua máquina é só compilar com o parametro “-source 1.5” ou se estiver utilizando o eclipse altere a propriedade nos properties do projeto.
Se quiser compilar no 1.4 é só retirar os identificadores, funcionará igual.

[]´s

Tchê

Éverton da Silva Amorim
SCJP, SCJD, SCEA

Existem 10 tipos de pessoas no mundo. As que conhecem números binários e as que não conhecem.

T

o problema no teu caso é que estais complilando com o source 1.4 do java, aí os identificadores das collections não funcionam.
Se tiver o JDK 5 na tua máquina é só compilar com o parametro “-source 1.5” ou se estiver utilizando o eclipse altere a propriedade nos properties do projeto.
Se quiser compilar no 1.4 é só retirar os identificadores, funcionará igual.

[]´s

Tchê

Éverton da Silva Amorim
SCJP, SCJD, SCEA

Existem 10 tipos de pessoas no mundo. As que conhecem números binários e as que não conhecem.

L

Na real esse código que vc postou ai agora tem erros de sintaxe até para java 5:

Collections.sort(list, new Comparator<Aluno>()
      {

         public int compare(Aluno o1, Aluno o2)
         {
            return o1.getMedia() - o2.getMedia();
         }
      });

Esse trecho ai é a chamada de um método, tem que estar dentro de algum bloco.

void add(String nome, int media)
       {
          list.add(new Abc(nome, media));
       }

Esse ai tenta adicionar um objeto Abc (que não está declarado) em uma lista que a principio aceitaria apenas objetos do tipo Aluno. Fora que list não esta declarado para esse trecho.

Então, pelo que lembre vc queria ordenar uma matriz e eu propus vc fazer com objetos e listas. Testa esse código ai, aquele treco <Abc> significa que a lista só pode receber objetos do tipo Abc. Enfim, da uma olhada, ve se vc entende (precisa de java 5)

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Teste
{
   static class Abc
   {
      private int media;
      private String nome;

      public Abc (String nome, int media)
      {
         this.media = media;
         this.nome = nome;
      }

      public int getMedia()
      {
         return media;
      }

      public String getNome()
      {
         return nome;
      }
   }

   public static void main(String[] args)
   {

      List<Abc> list = new ArrayList<Abc>();
      list.add(new Abc("joão", 7));
      list.add(new Abc("Pedro", 5));
      list.add(new Abc("José", 3));
      list.add(new Abc("Joana", 10));
      list.add(new Abc("Maria", 6));
      list.add(new Abc("Beatriz", 9));

      Collections.sort(list, new Comparator<Abc>()
      {

         public int compare(Abc o1, Abc o2)
         {
            return o1.getMedia() - o2.getMedia();
         }
      });

      System.out.println("Aluno\tMédia");
      for (Abc abc : list)
      {
         System.out.println(abc.getNome() + "\t" + abc.getMedia());
      }

   }

}
S

Vocês são demais! Valeu mesmo!

Criado 20 de abril de 2007
Ultima resposta 20 de abr. de 2007
Respostas 6
Participantes 4