Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5 introduce Dynamic Multi Frame Generation e MFG 6X, permettendo fino a cinque frame generati per ogni frame renderizzato. I test su Cyberpunk 2077 e 007 First Light mostrano forti incrementi di FPS e riduzione della latenza su RTX 5090 Laptop. Migliorano fluidità, stabilità e qualità visiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-11-2011, 10:36   #1
FrankieB76
Member
 
Iscritto dal: Oct 2008
Messaggi: 97
[JAVA] - Matrici

buongiorno, ho un problema con una matrice, non capisco quale sia l'errore, se di sintassi o di concetto.

nel momento in cui vado a definire l'oggetto matrice, di arraylist di stringhe, ed il suo costruttore vuoto, ho questa situazione:

Codice:
public class MatriceArchi {
	
	public int dim;
	public ArrayList <String> [][] mat;
	
	//costruttore vuoto
	public MatriceArchi () {
		
		dim = 0;
		mat = new ArrayList <String> [][];
		
	}

}
mi segna errore sull'ultima riga,

Codice:
mat = new ArrayList <String> [][];
ovvero mi dice "Cannot create a generic array of ArrayList<String>",

ma non mi dice niente sopra, quando definisco

Codice:
public ArrayList <String> [][] mat;
in cosa sbaglio?
per chiarezza, l'obiettivo è la definizione di un oggetto matrice ( [] [] ) in cui ogni cella continene un ArrayList di stringhe.

grazie per l'attenzione, buona giornata!
FrankieB76 è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2011, 11:51   #2
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
In java non si possono creare array di generics.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2011, 12:01   #3
FrankieB76
Member
 
Iscritto dal: Oct 2008
Messaggi: 97
cioè, in parole povere, non posso mettere in un array quello che voglio?
e quale potrebbe essere l'alternativa per quello che devo fare?
FrankieB76 è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2011, 12:42   #4
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
In verità si possono creare:
Codice:
public static <T extends Object> T[][] emptyMatrix(Class<? extends Object> of, int row, int col) {
    T[][] matrix = (T[][]) java.lang.reflect.Array.newInstance(of, row, col);     
    for (int i = 0; i < row; i++)
        for (int j = 0; j < col; j++) 
            try { matrix[i][j] = (T)of.newInstance(); }
            catch (InstantiationException ex) { System.err.println(ex); }
            catch (IllegalAccessException ex) { System.err.println(ex); }
    return matrix;
}
Codice:
int W = 10, H = 10;
ArrayList<String>[][] data = emptyMatrix(ArrayList.class, W, H);
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2011, 12:56   #5
FrankieB76
Member
 
Iscritto dal: Oct 2008
Messaggi: 97
Quote:
Originariamente inviato da Don[ITA] Guarda i messaggi
In verità si possono creare:
Codice:
public static <T extends Object> T[][] emptyMatrix(Class<? extends Object> of, int row, int col) {
    T[][] matrix = (T[][]) java.lang.reflect.Array.newInstance(of, row, col);     
    for (int i = 0; i < row; i++)
        for (int j = 0; j < col; j++) 
            try { matrix[i][j] = (T)of.newInstance(); }
            catch (InstantiationException ex) { System.err.println(ex); }
            catch (IllegalAccessException ex) { System.err.println(ex); }
    return matrix;
}
Codice:
int W = 10, H = 10;
ArrayList<String>[][] data = emptyMatrix(ArrayList.class, W, H);
ehm... ti ringrazio della risposta, devo solo un attimo capire riga per riga di cosa si tratta esattamente e come posso utilizzarla per i miei scopi.

se non ho capito male, nel doppio ciclo di for me la sta inizializzando?
FrankieB76 è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2011, 13:42   #6
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
Esatto, nel doppio ciclo for inizializza la matrice. Ovviamente nulla ti vieta di farlo al di fuori di quel metodo:
Codice:
int W = 10, H = 10;
ArrayList<String>[][] data = (ArrayList[][]) java.lang.reflect.Array.newInstance(ArrayList.class, W, H);
for(int x = 0; x < W; x++)
    for(int y = 0; y < H; y++)
        data[x][y] = new ArrayList<String>();   //ArrayList va creato proma di poter essere usato
data[0][2].add("cane");
data[0][2].add("gatto");
data[5][3].add("casa");
data[5][3].add("ufficio");
System.out.println(data[0][2]); //stampa [cane, gatto]
System.out.println(data[5][3]); //stampa [casa, ufficio]
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2011, 14:26   #7
FrankieB76
Member
 
Iscritto dal: Oct 2008
Messaggi: 97
ok, grazie mille, sembrerebbe perfetto per quello che ci devo fare!
FrankieB76 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
Resident Evil Veronica copia Resident Ev...
Lo smartphone di Trump Mobile è d...
The Social Reckoning, la storia di Faceb...
FASTCloud Open Source: un cloud sovrano ...
AMD non lascia spazio a Intel: la top 15...
iPhone 17 torna protagonista su Amazon: ...
PowerToys si aggiorna alla versione 0.10...
La nuova Audi Q7 proietta le frecce sull...
Framework blocca tutto: Laptop 13 Pro no...
SSD, Biwin investe oltre metà del...
Samsung Trend Radar 2026: smartphone e s...
Enel entra nella telefonia mobile: il vi...
Arriva il menu contestuale aggiornato di...
GM punta sulle batterie al sodio per lo ...
Instagram amplia il controllo sull'algor...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:25.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v