Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Spazio di lavoro NxM

  1. #1

    Spazio di lavoro NxM

    Ciao raga.... Come dice il titolo avrei bisogno di una dritta....

    Sto lavorando ad un progettino e sono incappato in un problema....

    Devo creare una specie di griglia in cui inserire e modificare i dati (dei caratteri) una cosa del genere:

    XOOOOOXX
    XOXOOOXO
    XXOOOOOX
    XOOOOXXO
    OOOOXXOO
    OOOOXXOO

    in cui O è uno spazio vuoto e X occupato da un carattere da definire....

    Fin qui tutto ok, avevo pensato di usare una matrice n x m e inserirci i dati...

    Il problema si pone quando i dati sono pochi e lo spazio tanto.... tipo 100x500 la tabella e 10 dati...

    Rimane tanto spazio vuoto e mai utilizzato che viene comunque occupato e analizzato ai fini del mio progetto (visto che devo inserire cancellare modificare le singole caselle) e quindi la soluzione è la più semplice ma sicuramente non la più efficiente e questo non va bene....

    Qualcuno avrebbe qualche idea per rendere più efficiente il processo???? tipo un altra struttura dati o qualcosa di simile che non sia la matrice n x m??????

    Grazzzzzzzzzzzziieeeeeee.....

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Non vedo cosa possa esserci di "più efficace" di una matrice... senza sapere COSA devi farci su questi dati.


    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

  3. #3
    Niente di che.... devo solo cambiare i valori all'interno delle varie caselle, i modo da rappresentare ora una forma, ora un altra.... pure io nn riesco a trovare un modo piu semplice.... avevo pensato in alternativa ad utilizzare una lista di stringhe, un array di stringhe, un file da cui estrarre stringhe (sempre da tokenizzzare poi chiaramente), ma tutto mi sembra molto piu complicato e meno efficiente di quanto sarebbe con una matrice di array....
    Ci sto diventando matto....

    L'alternativa sarebbe rappresentare poche caselle e ingrandire via via lo schema all'introduzione dei dati ma mi sembra moooolto piu complesso e in sostanza sempre meno efficiente....

    quindi proprio non ne ho idea.....

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Bontakun
    Niente di che.... devo solo cambiare i valori all'interno delle varie caselle, i modo da rappresentare ora una forma, ora un altra.... pure io nn riesco a trovare un modo piu semplice.... avevo pensato in alternativa ad utilizzare una lista di stringhe, un array di stringhe, un file da cui estrarre stringhe (sempre da tokenizzzare poi chiaramente), ma tutto mi sembra molto piu complicato e meno efficiente di quanto sarebbe con una matrice di array....
    Scusa ma il problema alla fin fine quale è? Cercare di occupare meno memoria possibile??

    Il valore nella cella hai detto che è un carattere, giusto? Fare new char[100][500] viene certamente un "bel" array come dimensione (basta fare un calcolo, siamo sui 100 Kbyte di occupazione) ma nulla che non si possa gestire in Java e con una JVM avviata normalmente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Esatto... deve occupare meno memoria possibile ed essere il piu rapido possibile....

    Il problema non è tanto ke si possa gestire o no ma che nella traccia del progetto è indicato di non usare la matrice m x n ma qualcos'altro.... Uffffff....


    Avevo gia finito senza sta limitazione...

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Bontakun
    Esatto... deve occupare meno memoria possibile ed essere il piu rapido possibile....

    Il problema non è tanto ke si possa gestire o no ma che nella traccia del progetto è indicato di non usare la matrice m x n ma qualcos'altro....
    Beh, alternative ce ne sono ovviamente sono più complicate del classico array bidimensionale.

    Ad esempio un array lineare di oggetti di una tua classe che "modella" l'insieme di informazioni: riga, colonna, valore. Chiaramente per maggior prestazioni nella ricerca, gli oggetti si potrebbero tenere ordinati per riga/colonna e poi per cercare il valore lo si fa con la tecnica del "binary search" (ricerca dicotomica).
    Se il numero di valori fosse noto a priori, sarebbe anche più facile. Altrimenti la gestione della espansione dell'array sarebbe comunque a carico tuo (a meno di usare un ArrayList).

    Oppure come ulteriore alternativa, una "mappa" (HashMap) in cui le chiavi sono rappresentate da oggetti di una tua classe che modella riga/colonna e in cui i valori sono o un Character o un oggetto di una classe che modella il valore (e che magari è "mutabile" a differenza di Character). Ma in questo caso avresti decisamente più oggetti e la occupazione di memoria non sarebbe facile da valutare a priori.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Grazie andbin x la disponibilità.... Proverò la prima delle opzioni ke hai detto e vediamo cosa ne salta fuori.... Ci avevo gia fatto una mezza idea ma nn sapendo se il tutto sarebbe risultati migliore della matrice avevo lasciato subito perdere.... Ora invece studierò bene la cosa e vedremo.....

    Se intanto a qualcun altro viene in mente qualcos'altro lo posti pure... Grazzzzzzzziieeee...

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.