Arrays Ordenação

18 respostas
B

Preciso cria um programa que:

Permita que o usuário informe uma sequência de 10 pessoas;

Para cada pessoa deverá ser informado o nome e idade da

pessoa;

Mostre em uma janela gráfica a sequência de pessoas ordenada

considerando primeiramente o nome e em segundo lugar, para

desempate caso hajam duas pessoas com o mesmo nome, a idade

Obrigado!

18 Respostas

F

sequinte posso lhe ajudar até entendo bem de arraylist mas precisava ver algo. Tem a classe começada algo do tipo para analizar a sua forma de pensar e continuar ela
:slight_smile:

H

Primeiramente, qual são suas dúvidas: como montar a interface gráfica, como estruturar os dados, como ordenar (talvez a tarefa mais difícil) ou tudo, responda e partir daí podemos te ajudar!!!

B

eu queria criar uma tela onde
aparecesse u Jtable
e um botão para inserir e excluir e alterar
onde inserir apareceria outra janela
com dois JtextFields para nome e idade com boão para
gravar e cancelar inserindo esses dados eu queria
carregar no Jtable já ordenando do modo que comentei
e o botão escluir iria excluir e o alterar alterar o campo
selecionado no Jtable

se vcs tiverem um exemplo e puderem me mandar no meu email
[email removido]

Muito obrigado mesmo!!

F
[color=red][/color]

import <a href="http://java.io">java.io</a>

Class Ordena{

float s= 0

public static void main (String [] args){

float [] a = new float [10];

float [] b = nex float [10];

BufferedReader teclado = new BufferReader ( new ImputStream Reader (System.in));

for (int = 0; i<0; i ++){

string x = teclado .readline();

a[i] = Float.parseFloat (s);

// agora é so fazer mais um for para o array b ligar uma posição a outra e imprimir na tela a sequencia, que pode ser sequenciada junto com o comando de impressão.
S

Bom, pra ordenar você pode usar:

Arrays.sort(variavel_array);
T

o código Arrays.sort é de alguma classe específica, alguem teria cum exemplo pra simplificar ???

[]'s

F

Respondendo a pergunta de tfguitar:

[color = green]
array.sort não é de uma classe especifica
[/color]

Antes de começar a sua classe deve importar
java.io.*
só isto

[color = red]
a palavra SORT é uma palavra reservada
[/color]

Att.
FritsJAva

T

Blz, mas me explica como funciona pq tentei de todos os jeitos e dá o seguinte erro:

Ordena.java:19: cannot resolve symbol symbol : variable array location: class Ordena array.sort(x); ^ 1 error

[color="red"]Estou usando o corejava (Estou aprendendo :lol: ) e a java.io[/color]

import corejava.*;
import java.io.*;

class Ordena
{
 public static void main (String [] args)
 {

  double [] a = new double [10];
  String x [] = new String [10];
  int i;

  for (i = 0; i<10; i ++)
  {
    x[i] = Console.readString("NOME: ");
    a[i] = Console.readDouble("MEDIA: ");
  }
  array.sort(x);
  for (i = 0; i<10; i ++)
  {
    System.out.println("Nome: " +x[i]+ " Media: " +a[i]);
  }
 }
}

Tem algo errado aqui para ordenar por nome ???

Desculpem o post imenso.
[]'s

F

:wink:
No momento não posso resolver seu problema, estou no trabalho!

A noite antes das 22:00 horas lhe envio no furum mesmo a solução do seu problema!!!

Aguarde!!!

Att
FritsJava

T

Hahaha, blz, também estou no trampo só que esperando a hora passar hauhaua, se vc souber uma apostila boa de java que não seja específica em applets e souber o endereço eu agradeço.

[]'s

F

www.unoescxxe.edu.br/~agosti

esse cara é meu professor, ele tem uma apostila que nos disponibilizou, essa apostila vai clarear sua ideia.
A apostila é para quem tá iniciando mas tem bastante exemplos
O carra é bom, entende mesmo!!

// bah agora vai ter que me passar depois dessa!!! :grin:

C

não está dando certo porque Arrays é uma classe e classe e começa com MAIUSCULO. O certo é java.util.Arrays.sort(x). sort() é um método estatico portanto não precisa de uma nova isntancia (“new”).

F

sobre a declaração do sort não vou discutir!!!
Provavelmente seja como vc disse!
Mas agora dizer que todo o nome da classe tem que ser em maiusculo não é real!
Somente a Primeira Letra ex:

class Exemplo
T

Blz, consegui rodar, com a classe java.strings.* hehehe, mas ordena os nome e no caso a média não. Agora tenho que quebrar a cabeça aqui, pra ordenar todos… :lol:

E
import java.util.Arrays;
import javax.swing.JOptionPane;

public class OrdenaNomes {
	public static void main(String[] args) {
		String[] nomes = new String[6];
		
		for(int i=1; i < 6; i++)
			nomes[i] = JOptionPane.showInputDialog(null, "Digite o " + i + "º nome:");
		
		Arrays.sort(nomes);
		
		for(int i=1; i < 6; i++)
			System.out.println(nomes[i]);
		
	}// pvsm
}// class
Não estou conseguindo ordenar meu Array de String. Alguém pode me dizer o que está errado? O Eclipse está dando o seguinte erro: Exception in thread main java.lang.NullPointerException

at java.util.Arrays.mergeSort(Unknown Source)

at java.util.Arrays.sort(Unknown Source)

at OrdenaNomes.main(OrdenaNomes.java:13)
F

Lembre-se que a matriz começa a contagem na posição 0 e não na 1 beleza?? seu primeiro elemento é o 0,1,2,3,4,5…são as 6 posições declaradas…

Para não ter erro susbtitua o numero por nomes.length

int i=0; i < nomes.length; i++)

Edit, resolvi olhar o código…será que vc não esqueceu de declarar o package?? dei uma modificada veja se funciona …aqui rodou tranquilo…Olhe e adapte ao seu interesse…inté

package pacote;
import java.util.Arrays; 
import javax.swing.JOptionPane; 

public class OrdenaNomes { 
    
    public void roda(){
     String[] nomes = new String[6]; 
       
      for(int i=0; i < nomes.length; i++) {
         nomes[i] = JOptionPane.showInputDialog(null, "Digite o " + i + "º nome:"); 
       
     
      System.out.println(nomes[i]);
      }
      Arrays.sort(nomes); 
       
   }// pvsm 

   public static void main(String args[]) { 
     OrdenaNomes or= new OrdenaNomes();
     or.roda();
}// class 
   }
E

Eu sei, mas eu botei o i=1 pra mensagem de entrada de dados aparecer de 1º ao 5º nome, tipo Digite o 1º nome: e etc…

Agora estou com uma dúvida, o método sort() ordenaria nomes, por exemplo, se eu entrar com Xavier, Eduardo, Bruno, Alexandre e Pedro, ele ordenaria Alexandre, Bruno, Eduardo, Pedro e Xavier na saída?

S

Eduardo, o metodo sort vai (ateh onde lembro ^^) ordenar de maneira crescente, que neste caso ficaria como vc disse.

Eu tenho mais dois metodos de ordenação aki vou passar para vcs, caso queriam modifica-lo para seu uso.

Metodo quicksort, usa recursividade, é mais lento que o Arrays.sort(), mas vc tem a possibilidade de muda-lo a seu gosto:

int auxl;
    int div;
    private void quicksort(int p_inicio, int p_fim){
        int v_inicio = p_inicio;
        int v_fim = p_fim;
        int Meio;
   
        if (p_fim > p_inicio){
            Meio = lista[(p_inicio + p_fim)/ 2];
            while (v_inicio <= v_fim){
                while (v_inicio < p_fim && lista[v_inicio] < Meio){
                    v_inicio++;
                    comp++;
                }
                while (v_fim > p_inicio && lista[v_fim] > Meio){
                    v_fim--;
                    troc++;
                }
                if (v_inicio  <= v_fim){
                    auxl = lista[v_inicio];
                    lista[v_inicio] = lista[v_fim];
                    lista[v_fim] = auxl;
                    v_inicio++;
                    v_fim--;
                }
                if (p_inicio < v_fim)
                    quicksort(p_inicio,v_fim);
                if (v_inicio < p_fim)
                    quicksort(v_inicio,p_fim);
            }
        }
    }

Este outro é chamado de Bubblesort (se não me engano), é mais lento, porem muito mais simples. Detalhe, as variaveis não estão declaradas neste exemplo ^^:

for(int b = NEL-1;b >= 0;b--){
            for(j = 0; j <= b-1;j++){
                comp++;
                if (lista[j] > lista[j+1]){
                    aux = lista[j];
                    lista[j] = lista[j+1];
                    lista[j+1] = aux;
                    troc++;
                }
            }
        }

Eu possuo uma classe que apresenta um janela, com a possibilidade de ordenar uma sequencia de numeros separadas por “-”, com os três metodos (Arrays.sort(), Quicksort e o bubble), quem quiser eu passo por e-mail, soh me deixar uma menssagem privada :wink:

[]'s

Criado 11 de abril de 2005
Ultima resposta 28 de abr. de 2005
Respostas 18
Participantes 9