Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Array 2D con due tipi di variabili

    Ciao a tutti!!!
    mi servirebbe per un programma che sto facendo, di creare un array con due caratteristiche (2D), ma con due tipi di variabili: String e Boolean...
    E' possibile?
    grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da lollo11113 Visualizza il messaggio
    creare un array con due caratteristiche (2D), ma con due tipi di variabili: String e Boolean...
    E' possibile?
    Di per sé, tecnicamente, è perfettamente possibile avere un array bidimensionale di Object in cui ogni "riga" è un array che contiene un String e un Boolean.

    Esempio con inizializzazione:

    codice:
    Object[][] array = {
        { "aaa", Boolean.TRUE  },
        { "bbb", Boolean.FALSE }
    };

    Ma: 1) è poco bello, 2) troppo generico e 3) poco object-oriented.

    L'ideale è "modellare" quelle due informazioni con una tua classe apposita. Non ho capito bene cosa rappresentano, io come esempio la chiamo TuoTipo. Quindi:

    codice:
    TuoTipo[] array = {
        new TuoTipo("aaa", Boolean.TRUE),
        new TuoTipo("bbb", Boolean.FALSE)
    };

    E TuoTipo dovrebbe essere una classe che, come minino, è un banale java "bean", ovvero con i campi privati per i dati, eventuali costruttori (almeno uno se costruisci come sopra) e metodi pubblici "getter" e/o "setter".
    Ultima modifica di andbin; 20-06-2014 a 11:33
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    ok, per me stai parlando arabo...
    a me servirebbe fare un array con delle stringhe e dei boolean in modo che il boolean si riferisca alla stringa corrispondente.... mi sono immaginato una cosa del genere:
    Rossi true
    Verdi false
    Bianchi false
    Gialli true
    Blu false

    dove Rossi, Verdi,... sono dei nomi (stringhe) e true, false sonno delle caratteristiche (boolean)

  4. #4
    io avevo scritto così:

    codice:
    String persone [][] = new String[26][2];
    però non capisco la tua proposta....
    codice:
    Object[][] array ={
        {"aaa",Boolean.TRUE  },
        {"bbb",Boolean.FALSE }
    };
    cosa sono "aaa" e "bbb"? e perchè hai dovuto scrivere boolean.true e boolean.false?!?!?
    scusa per la mia ignoranza in merito

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da lollo11113 Visualizza il messaggio
    con delle stringhe e dei boolean in modo che il boolean si riferisca alla stringa corrispondente....
    dove Rossi, Verdi,... sono dei nomi (stringhe) e true, false sonno delle caratteristiche (boolean)
    Ok e cosa rappresenta l'insieme string+boolean? Una persona? Allora fai una classe Persona
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    e cosa cambia? poi ho comunque il problema di assegnare a una stringa un boolean....

  7. #7
    ahhhhh ok forse ho capito:
    ora ho un array composto da:
    un boolean True
    codice:
     {"aaa",Boolean.TRUE  },
    e un boolean false
    codice:
     { {"bbb",Boolean.FALSE }
    giusto?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da lollo11113 Visualizza il messaggio
    io avevo scritto così:

    codice:
    String persone [][] = new String[26][2];
    Così non potresti avere un "boolean" (né primitivo né oggetto Boolean).

    Quote Originariamente inviata da lollo11113 Visualizza il messaggio
    però non capisco la tua proposta....
    cosa sono "aaa" e "bbb"?
    Beh, io non sapevo cosa dovevano contenere le stringhe ....

    Quote Originariamente inviata da lollo11113 Visualizza il messaggio
    e perchè hai dovuto scrivere boolean.true e boolean.false?!?!?
    Ma scusa .... non volevi dei "boolean"? (Nel primo caso che ho detto, essendo array di oggetti, devono per forza essere Boolean oggetto, non boolean primitivo).

    Quote Originariamente inviata da lollo11113 Visualizza il messaggio
    e cosa cambia?
    Avere una classe es. Persona? Cambia che è innanzitutto più object-oriented, che puoi inserire eventuale "logica" nella classe e puoi estrarre/settare i dati con dei comodi getter/setter.
    Per cortesia, chiarisciti le idee sulla programmazione ad oggetti.

    Quote Originariamente inviata da lollo11113 Visualizza il messaggio
    poi ho comunque il problema di assegnare a una stringa un boolean....
    Una stringa è una stringa .... al massimo può contenere es. "true". Ma questo non è un boolean!! (e non lo puoi usare come tale)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    ok forse finalmente ho capito

    codice:
    Object[][] personed ={			    {"aaa",Boolean.TRUE  },
    			    {"bbb",Boolean.FALSE }
    			    
    			};
    cosi creo dentro a personed die oggetti boolean chiamati aaa e bbb e settati a true e a false.
    mi resta però un ultimo dubbio: così ho creato due boolean, se volessi creare una stringa chiamata ccc che contenga "ciao", per esempio?
    grazie per la pazienza (e ce ne è voluta)

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da lollo11113 Visualizza il messaggio
    cosi creo dentro a personed die oggetti boolean chiamati aaa e bbb e settati a true e a false.
    Un array bidimensionale di oggetti ha un array principale che contiene riferimenti ad altri array.
    Ogni sotto array è appunto un array come quel es. {"bbb",Boolean.FALSE }

    Il punto è che così è troppo generico e non ben "modellato". Non c'è scritto da nessuna parte cosa sono quei valori. Cosa rappresenta quel boolean? Solo dall'array non lo sai. Inoltre l'array è troppo "arbitrario". Se ti sbagli e metti es.

    {Boolean.FALSE, "bbb" }

    compila tutto ma poi non è quello che ti serve.
    Inoltre l'array è di Object, se estrai qualcosa es. personed[1][0] (che nell'esempio è "bbb") questo lo "vedi" come Object, non come String.

    Non puoi fare banalmente es.

    System.out.println(personed[1][0].toUpperCase());

    Perché l'oggetto referenziato da personed[1][0] è sì realmente un String ma il compilatore lo "vede" come Object e Object non ha toUpperCase(), quindi così non compila. Dovresti fare un cast ... e farlo ogni volta!

    Non è quindi così che si modellano le cose. Sfrutta la programmazione ad oggetti, usa le classi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.