{JAVA} Ordinare un multi-array in base a un campo

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
Atreo
Prode Principiante
Messaggi: 238
Iscrizione: mercoledì 8 febbraio 2006, 20:20

{JAVA} Ordinare un multi-array in base a un campo

Messaggio da Atreo »

Salve a tutti  (good)

Volevo chiedervi se conoscete un metodo di qualche classe in grado di ordinare un array multidimensionale in base al  valore contenuto in una posizione dell'array[x][y]


ad esempio avremo un array multidimensionale di Stringhe
[4][ciao][atreo][array]
[34][ciao][atreo][array]
[1][ciao][atreo][array]

io dovrei ordinare l'array in base a uno dei campi che può essere sia un intero che una stringa...

esiste già un metodo che lo fa oppure devo creare una funzione manualmente?

Grazie mille a tutti
Buona serata  :)
Simone
Consulente SEO Freelance
http://simone.chiaromonte.com
Avatar utente
joaquin
Prode Principiante
Messaggi: 116
Iscrizione: giovedì 12 aprile 2007, 22:54

Re: {JAVA} Ordinare un multi-array in base a un campo

Messaggio da joaquin »

Atreo ha scritto: Salve a tutti  (good)

Volevo chiedervi se conoscete un metodo di qualche classe in grado di ordinare un array multidimensionale in base al  valore contenuto in una posizione dell'array[x][y]


ad esempio avremo un array multidimensionale di Stringhe
[4][ciao][atreo][array]
[34][ciao][atreo][array]
[1][ciao][atreo][array]

io dovrei ordinare l'array in base a uno dei campi che può essere sia un intero che una stringa...

esiste già un metodo che lo fa oppure devo creare una funzione manualmente?

Grazie mille a tutti
Buona serata  :)
Credo che un array del genere non potrai crearlo che poi mi sembra una matrice più che un array. Per fare quello che intendi tu credo che dovresti definire una classe che ha le proprietà che tu vuoi rapresentare tramite un array, la classe che crei inoltre deve implementare l'interfaccia Comparable (http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Comparable.html) e definire nel medoto compareTo() il tuo ordinamento, solo quando hai fatto tutto ciò puoi chiamare il metodo statico sort() della classe Array passando come parametro una collezione che contiene tutti gli oggetti istanze della classe che hai creato.
Ultima modifica di joaquin il lunedì 18 febbraio 2008, 13:04, modificato 1 volta in totale.
joaquin
Avatar utente
joaquin
Prode Principiante
Messaggi: 116
Iscrizione: giovedì 12 aprile 2007, 22:54

Re: {JAVA} Ordinare un multi-array in base a un campo

Messaggio da joaquin »

Apetta forse avevo capito male, forse è questo quello che cerchi?

Codice: Seleziona tutto

import java.util.Arrays;
public class Esempio {
    public static void main(String[] argomenti){
        String[][] col=new String[2][2];
        col[0][0]="Roma";
        col[0][1]="Napoli";
        col[1][0]="Palermo";
        col[1][1]="Cagliari";
        for(int i=0;i<col.length;i++){
            Arrays.sort(col[i]);
        }
        for(int i=0;i<col.length;i++){
            for(int j=0;j<col[i].length;j++){
                System.out.println(col[i][j]+" ");
            }
            System.out.println("\n");
        }
    }

}
joaquin
Avatar utente
Atreo
Prode Principiante
Messaggi: 238
Iscrizione: mercoledì 8 febbraio 2006, 20:20

Re: {JAVA} Ordinare un multi-array in base a un campo

Messaggio da Atreo »

Ciao :)

il tuo codice mi ordina soltanto gli elementi in ordine alfabetico nella posizione array[ i ]


quello che invece vorrei fare io è di ordinare la matrice (o array multidimensionale) in base all'elemento che si trova in posizione XXX  array[ i ][XXX]

mi spiego meglio con un esempio...

la matrice 4x4 di partenza è la seguente:

Codice: Seleziona tutto

array[0][0] = "7";
array[0][1] = "Francesco";
array[0][2] = "Storpio";
array[0][3] = "Milano";
  
array[1][0] = "5";
array[1][1] = "Fabio";
array[1][2] = "Quercia"; 
array[1][3] = "Torino";
  
array[2][0] = "19";
array[2][1] = "Angelo"; 
array[2][2] = "Santo";
array[2][3] = "Lecce";
  
array[3][0] = "2";
array[3][1] = "Walter";
array[3][2] = "Certo";
array[3][3] = "Cagliari";

mi dovrebbe ordinare l'array in base all'elemento che si trova nella posizione 1 di ogni array... per cui l'array ordinato sarà

Codice: Seleziona tutto

array[0][0] = "19";
array[0][1] = "Angelo"; 
array[0][2] = "Santo";
array[0][3] = "Lecce";

array[1][0] = "5";
array[1][1] = "Fabio";
array[1][2] = "Quercia"; 
array[1][3] = "Torino";

array[2][0] = "7";
array[2][1] = "Francesco";
array[2][2] = "Storpio";
array[2][3] = "Milano";

array[3][0] = "2";
array[3][1] = "Walter";
array[3][2] = "Certo";
array[3][3] = "Cagliari";
come vedete mi ha ordinato l'array in base alla posizione 1...

Angelo
Fabio
Francesco
Walter


Quello che mi chiedevo è se esiste già un metodo che basta che gli dico di ordinare la matrice in base alla posizione 1 di ogni array oppure la funzione devo crearla io :)

Grazie mille a tutti :):)
Ultima modifica di Atreo il lunedì 18 febbraio 2008, 18:37, modificato 1 volta in totale.
Simone
Consulente SEO Freelance
http://simone.chiaromonte.com
Avatar utente
joaquin
Prode Principiante
Messaggi: 116
Iscrizione: giovedì 12 aprile 2007, 22:54

Re: {JAVA} Ordinare un multi-array in base a un campo

Messaggio da joaquin »

Penso che non esista un metodo già implementato del genere, secondo me ti dovresti orientare  a questo punto verso la prima risposta che ti ho postato.
joaquin
Avatar utente
Atreo
Prode Principiante
Messaggi: 238
Iscrizione: mercoledì 8 febbraio 2006, 20:20

Re: {JAVA} Ordinare un multi-array in base a un campo

Messaggio da Atreo »

ti ringrazio :)

sto scrivendo una funzione che fà proprio quello che volevo... pensavo esistesse già un metodo in qualche classe ma non importa :)

Grazie mille per le info  (good)
Simone
Consulente SEO Freelance
http://simone.chiaromonte.com
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti