Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Dubbio Array Multidimensionali

    Ciao a tutti,
    sto studiando il Java da un libro che sul web è molto ben recensito.
    Sto parlando di "Java 7" di Pellegrino Principe. In un listato del seguente libro ho trovato una cosa che mi ha particolarmente stranito. Questo è listato in questione:
    codice:
    public class RelationalOperators
    {
        public static void main(String[] args)
        {
            int[][] values = {{10, 20, 30}, {-22, -11, -18}, {105, 205, -963}};
            int filter_values[] = {33, 13, 56};
            int how_many = 0;
            
            for (int k = 0; k < filter_values.length; k++)
            {
                for (int i = 0; i < values.length; i++)
                {
                    for (int j = 0; j < values[i].length; j++)
                    {
                        int value1 = values[i][j];
                        int value2 = filter_values[k];
                        System.out.print("Il valore " + value1 + " è minore del valore " +
                                                                              value2 + " ?");
                        if (value1 < value2)
                        {
                            how_many += 1;
                            System.out.println( " VERO ");
                        }
                        else
                            System.out.println(" FALSE ");
                    }
                }
            }
            System.out.println("Numero valori trovati: " + how_many);
        }
    }
    Nel capitolo precedente vengono spiegati gli array bidimensionali e multidimensionali. Da quanto ho letto l'istruzione
    codice:
    int[][] values
    serve a dichiarare un array dibimensionale, ma nel listato l'array viene inizializzato inline come tridimensionale. Quacuno mi sa spiegare perchè?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Eh?
    Guarda che

    codice:
    int[][] values = {
        {10, 20, 30}, 
        {-22, -11, -18}, 
        {105, 205, -963}
    };
    è un normalissimo array bidimensionale...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Originariamente inviato da Alex'87
    Eh?
    Guarda che

    codice:
    int[][] values = {
        {10, 20, 30}, 
        {-22, -11, -18}, 
        {105, 205, -963}
    };
    è un normalissimo array bidimensionale...
    Ma infatti mi è venuto questo dubbio, solo che non capisco perchè vengono utilizzate tre parentesi graffe per inizializzare l'array, essendo bidimensionale non dovrebbero essere solo due?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da TrashcanDLM
    Ma infatti mi è venuto questo dubbio, solo che non capisco perchè vengono utilizzate tre parentesi graffe per inizializzare l'array, essendo bidimensionale non dovrebbero essere solo due?
    Un array monodimensionale:
    codice:
    {1, 2, 3}   // una sola riga
    Un array bidimensionale (ovvero, un array di array):
    codice:
    {
       {1, 2, 3},   // prima riga
       {1, 2, 3}    // seconda riga
       ...
    }
    Le graffe più esterne indicano un array, le graffe più interne indicano i "sub-array".

    Dov'è il problema?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da TrashcanDLM
    Ma infatti mi è venuto questo dubbio, solo che non capisco perchè vengono utilizzate tre parentesi graffe per inizializzare l'array, essendo bidimensionale non dovrebbero essere solo due?
    Un array bidimensionale è un array i cui elementi sono a loro volta array, non un array con due elementi
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Ecco il problema, l'inizializzazione inline non era spiegata in modo chiaro e avevofrainteso l'uso delle graffe qualcuno allora mi spiega il senso di dichiarare il numero di righe e colonne di un array? Questi maledetti array mi confondono un tantino

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da TrashcanDLM
    qualcuno allora mi spiega il senso di dichiarare il numero di righe e colonne di un array? Questi maledetti array mi confondono un tantino
    Beh, non sempre il tuo array sarà già pronto a compile-time: spesso verrà creato dinamicamente coi dati disponibili a runtime
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Originariamente inviato da Alex'87
    Beh, non sempre il tuo array sarà già pronto a compile-time: spesso verrà creato dinamicamente coi dati disponibili a runtime
    Giusto, non ci avevo pensato Grazie mille, problema risolto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.