Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Dopo il recente lancio della serie Xiaomi 15T di Monaco, vi parliamo oggi della versione più performante della nuova famiglia, ovvero Xiaomi 15 T Pro. Vi raccontiamo la nostra prova nel dettaglio, spiegando perché a questo prezzo e in questa fascia, questo smartphone ha davvero senso tenerlo in seria considerazione.
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer ha ampliato la sua offerta professionale con il TravelMate P6 14 AI, un notebook ultraleggero e robusto pensato per chi lavora in mobilità. Certificato Copilot+ PC, combina design premium, autonomia elevata e piattaforma Intel Core Ultra Serie 2 con funzionalità AI, garantendo sicurezza, affidabilità e produttività per l'utenza business moderna.
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
NUC 15 Pro e NUC 15 Pro+ sono i due nuovi mini-PC di casa ASUS pensati per uffici e piccole medie imprese. Compatti, potenti e pieni di porte per la massima flessibilità, le due proposte rispondono in pieno alle esigenze attuali e future grazie a una CPU con grafica integrata, accompagnata da una NPU per la gestione di alcuni compiti AI in locale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-04-2009, 11:32   #1
Balop
Senior Member
 
L'Avatar di Balop
 
Iscritto dal: Jul 2005
Messaggi: 3609
[Java] Esercizio con liste

Ciao a tutti, qualcuno saprebbe risolvere questo esercizio?

Scrivere il codice di una funzione statica java che permetta di copiare una matrice di generici oggetti in un vettore di liste. Il vettore di liste dovrà essere creato all'interno della funzione e restituito dalla funzione stessa. La lista generica i-esima del vettore di liste dovrà contenere tutti gli elementi della i-esima riga della matrice.

poi ne avrei anche un altro in cui si deve scrivere una funzione per gestire una lista... insomma ho un problemino con queste liste!!
__________________
Notebook MSI GT73VR 7RE TITAN SLI: 17.3" 4K IPS @ 120 Hz, i7-7820HK, 2x Nvidia GeForce GTX 1070 (SLI) - 8 GB GDDR5, 2x 16GB DDR4 2.400Mhz, Super Raid 4-512GB NVMe SSD +1TB (SATA) 7200rpm

In vendita:

|Utenti consigliati|: Marcondiron99
|Utenti sconsigliati|: iltoffa, otherman
Balop è offline   Rispondi citando il messaggio o parte di esso
Old 29-04-2009, 12:08   #2
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2775
http://www.hwupgrade.it/forum/showthread.php?t=1631648

Spiega cosa non ti e' chiaro e inizia a scrivere qualcosa.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 09:26   #3
Balop
Senior Member
 
L'Avatar di Balop
 
Iscritto dal: Jul 2005
Messaggi: 3609
si scusami, hai ragione...

intanto il mio problema in questo esercizio sta nel creare diverse liste quante sono le righe della matrice. come si può fare?

edit:
ho fatto la prova anche con una sola riga ma mi dà errore...

public class MatriceLista {
Nodo n;
MatriceLista Lista = new MatriceLista();

public MatriceLista() {
n = null;
}

public void add(Object v) {
Nodo nuovo = new Nodo(v, n);
n = nuovo;
}

public Object get() {
Object rk = n.valore;
n = n.next;
return rk;
}

public void crea() {
int n = 2;
Object matrice[][] = new Object[n][n];
for (int k = 0; k < matrice.length; k++) {
int j = 0;
Lista.add(matrice[j][k]);
}
}

public void stampa() {
while (n != null)
System.out.println(Lista.get());
}

public static void main(String[] args) {
MatriceLista obj = new MatriceLista();
obj.crea();
obj.stampa();

}


mi dice Exception in thread "main" java.lang.StackOverflowError
__________________
Notebook MSI GT73VR 7RE TITAN SLI: 17.3" 4K IPS @ 120 Hz, i7-7820HK, 2x Nvidia GeForce GTX 1070 (SLI) - 8 GB GDDR5, 2x 16GB DDR4 2.400Mhz, Super Raid 4-512GB NVMe SSD +1TB (SATA) 7200rpm

In vendita:

|Utenti consigliati|: Marcondiron99
|Utenti sconsigliati|: iltoffa, otherman

Ultima modifica di Balop : 12-05-2009 alle 10:25.
Balop è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 13:48   #4
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2775
Penso che tu abbia inquadrato male il problema, proviamo con un esempio:
Abbiamo una matrice fatta così:
Codice:
[1][2][3]
[4][5][6]
[7][8][9]
Scusa la poca fantasia per i numeri.
Passata la matrice al metodo statico che dovresti implementare il risultato sarà un vettore:
Codice:
[L0][L1][L2]
L0, L1 ed L2 sono delle liste così composte:
Codice:
[L0]->1->2->3
[L1]->4->5->6
[L2]->7->8->9
Con dei generici oggetti invece di numeri il concetto non cambia.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 13:56   #5
Balop
Senior Member
 
L'Avatar di Balop
 
Iscritto dal: Jul 2005
Messaggi: 3609
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Penso che tu abbia inquadrato male il problema, proviamo con un esempio:
Abbiamo una matrice fatta così:
Codice:
[1][2][3]
[4][5][6]
[7][8][9]
Scusa la poca fantasia per i numeri.
Passata la matrice al metodo statico che dovresti implementare il risultato sarà un vettore:
Codice:
[L0][L1][L2]
L0, L1 ed L2 sono delle liste così composte:
Codice:
[L0]->1->2->3
[L1]->4->5->6
[L2]->7->8->9
Con dei generici oggetti invece di numeri il concetto non cambia.
si si, l'esercizio l'avevo capito...
però, proprio come hai visto tu, ad ogni riga corrisponde una lista (che a loro volta faranno parte di un vettore..),
ma come faccio a creare n liste (n = numero di righe) nelle quali poi inserire gli oggetti della matrice?
non lo so a priori quante righe saranno, e anche se lo sapessi, metti che la matrice è 10x10 non è che posso creare 10 liste ad una ad una...
__________________
Notebook MSI GT73VR 7RE TITAN SLI: 17.3" 4K IPS @ 120 Hz, i7-7820HK, 2x Nvidia GeForce GTX 1070 (SLI) - 8 GB GDDR5, 2x 16GB DDR4 2.400Mhz, Super Raid 4-512GB NVMe SSD +1TB (SATA) 7200rpm

In vendita:

|Utenti consigliati|: Marcondiron99
|Utenti sconsigliati|: iltoffa, otherman
Balop è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 14:04   #6
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2775
Quote:
Originariamente inviato da Balop Guarda i messaggi
si si, l'esercizio l'avevo capito...
Ah ok, scusa
Quote:
Originariamente inviato da Balop Guarda i messaggi
però, proprio come hai visto tu, ad ogni riga corrisponde una lista (che a loro volta faranno parte di un vettore..),
ma come faccio a creare n liste (n = numero di righe) nelle quali poi inserire gli oggetti della matrice?
Fai una cosa del tipo:
Codice:
LinkedList<E> vettListe=new LinkedList<E>[matrice.length];
for(int i=0;i<vettListe.length;i++) vettListe[i]=new LinkedList<E>();
Non sono solo sicuro che la sintassi di quella parte che ho messo in grassetto sia corretta.
Quote:
Originariamente inviato da Balop Guarda i messaggi
non lo so a priori quante righe saranno, e anche se lo sapessi, metti che la matrice è 10x10 non è che posso creare 10 liste ad una ad una...
Invece è proprio quello che devi fare. Come vedi non è molto difficile, sono due righe di codice.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 14:22   #7
Balop
Senior Member
 
L'Avatar di Balop
 
Iscritto dal: Jul 2005
Messaggi: 3609
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Invece è proprio quello che devi fare. Come vedi non è molto difficile, sono due righe di codice.
cercavo proprio un modo per crearla con un paio di righe di codice, solo che non sapevo come fare..
io intendevo che non le volevo creare una ad una facendo:
MatriceLista Lista1 = new MatriceLista();
MatriceLista Lista2 = new MatriceLista();
.
.
MatriceLista ListaN = new MatriceLista();



Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Fai una cosa del tipo:
Codice:
LinkedList<E> vettListe=new LinkedList<E>[matrice.length];
for(int i=0;i<vettListe.length;i++) vettListe[i]=new LinkedList<E>();
Non sono solo sicuro che la sintassi di quella parte che ho messo in grassetto sia corretta.
ora vedo se funziona così. intanto grazie
__________________
Notebook MSI GT73VR 7RE TITAN SLI: 17.3" 4K IPS @ 120 Hz, i7-7820HK, 2x Nvidia GeForce GTX 1070 (SLI) - 8 GB GDDR5, 2x 16GB DDR4 2.400Mhz, Super Raid 4-512GB NVMe SSD +1TB (SATA) 7200rpm

In vendita:

|Utenti consigliati|: Marcondiron99
|Utenti sconsigliati|: iltoffa, otherman
Balop è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 15:37   #8
Balop
Senior Member
 
L'Avatar di Balop
 
Iscritto dal: Jul 2005
Messaggi: 3609
ormai tanto per concludere la pagina ecco il programma finito (per funzionare funziona, però se c'è qualcosa che non va fatemi sapere):
Codice:
public class MatriceLista {
	static Object matrice[][] = {{1,2,3},{4,5,6},{7,8,9},{2,6,8}};
	static LinkedList<Object> vettListe[] = new LinkedList[matrice.length];
	
	public void crea() {
		for (int i = 0; i < vettListe.length; i++)
			vettListe[i] = new LinkedList<Object>();
//		System.out.println(vettListe.length);
		for (int k=0; k<matrice.length; k++){
			for (int j=0; j<matrice[0].length; j++){
				vettListe[k].add(j, matrice[k][j]);
			}
		}
	}

	public void stampa() {
		for (int i=0; i<matrice.length; i++) System.out.println(vettListe[i]);
	}

	public static void main(String[] args) {
		MatriceLista obj = new MatriceLista();
		obj.crea();
		obj.stampa();
	}
}
grazie wingman87!!!

PS: effettivamente avevi ragione, cioè non è che non avevo capito il testo, ma non sapevo come funzionavano le LinkedList, quindi io volevo fare delle semplici liste (infatti c'era la parte inutile dove definivo i nodi ecc che ora non serve più..) e poi "collegarle" in qualche modo in un vettore... quindi non sapevo come fare per crearne n diverse con un ciclo for!!

PPS: ho visto che l'avrei potuto fare lo stesso con l'ArrayList che avevo visto, ma che non sapevo lo stesso come funzionasse...
__________________
Notebook MSI GT73VR 7RE TITAN SLI: 17.3" 4K IPS @ 120 Hz, i7-7820HK, 2x Nvidia GeForce GTX 1070 (SLI) - 8 GB GDDR5, 2x 16GB DDR4 2.400Mhz, Super Raid 4-512GB NVMe SSD +1TB (SATA) 7200rpm

In vendita:

|Utenti consigliati|: Marcondiron99
|Utenti sconsigliati|: iltoffa, otherman
Balop è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 15:51   #9
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2775
Sono contento che hai risolto, però c'è ancora qualcosa che non va: il testo dell'esercizio richiede che il lavoro sia svolto da una funzione statica che prende in input la matrice e che restituisce il vettore di liste, inoltre sfruttando i generici potresti evitare di usare sempre Object. Quindi in pratica il main sarà una cosa tipo:
Codice:
public static void main(String[] args){
  Integer matrice[][] = {{1,2,3},{4,5,6},{7,8,9},{2,6,8}};
  LinkedList vettListe[]=creaVettListe(matrice);
  //Qui poi puoi mettere la stampa dei valori per controllare che funzioni
}
e il metodo avrà un'intestazione di questo tipo:
Codice:
public static <E> LinkedList<E> creaVettListe(E[][] matrice)
Spero di non aver fatto confusione con i generici.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 16:11   #10
Balop
Senior Member
 
L'Avatar di Balop
 
Iscritto dal: Jul 2005
Messaggi: 3609
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Sono contento che hai risolto, però c'è ancora qualcosa che non va: il testo dell'esercizio richiede che il lavoro sia svolto da una funzione statica che prende in input la matrice e che restituisce il vettore di liste, inoltre sfruttando i generici potresti evitare di usare sempre Object. Quindi in pratica il main sarà una cosa tipo:
Codice:
public static void main(String[] args){
  Integer matrice[][] = {{1,2,3},{4,5,6},{7,8,9},{2,6,8}};
  LinkedList vettListe[]=creaVettListe(matrice);
  //Qui poi puoi mettere la stampa dei valori per controllare che funzioni
}
e il metodo avrà un'intestazione di questo tipo:
Codice:
public static <E> LinkedList<E> creaVettListe(E[][] matrice)
Spero di non aver fatto confusione con i generici.
mmm... mettendo queste righe che hai scritto tu... sballano un pò di cose e non riesco più a farlo funzionare...
__________________
Notebook MSI GT73VR 7RE TITAN SLI: 17.3" 4K IPS @ 120 Hz, i7-7820HK, 2x Nvidia GeForce GTX 1070 (SLI) - 8 GB GDDR5, 2x 16GB DDR4 2.400Mhz, Super Raid 4-512GB NVMe SSD +1TB (SATA) 7200rpm

In vendita:

|Utenti consigliati|: Marcondiron99
|Utenti sconsigliati|: iltoffa, otherman
Balop è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 16:14   #11
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2775
Beh sì, devi modificare quasi tutto e tenere solo la logica del metodo. Devi fare solo un lavoro di riorganizzazione.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 16:29   #12
Balop
Senior Member
 
L'Avatar di Balop
 
Iscritto dal: Jul 2005
Messaggi: 3609
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Beh sì, devi modificare quasi tutto e tenere solo la logica del metodo. Devi fare solo un lavoro di riorganizzazione.
ora devo andare, casomai stasera o domani vedo di riorganizzare un pò tutto..
comunque grazie 1000!!
__________________
Notebook MSI GT73VR 7RE TITAN SLI: 17.3" 4K IPS @ 120 Hz, i7-7820HK, 2x Nvidia GeForce GTX 1070 (SLI) - 8 GB GDDR5, 2x 16GB DDR4 2.400Mhz, Super Raid 4-512GB NVMe SSD +1TB (SATA) 7200rpm

In vendita:

|Utenti consigliati|: Marcondiron99
|Utenti sconsigliati|: iltoffa, otherman
Balop è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Xiaomi 15T Pro, è lui il nuovo best buy? La recensione Xiaomi 15T Pro, è lui il nuovo best buy? ...
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento Acer TravelMate P6 14 AI: il Copilot+ PC sotto i...
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondo...
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Galaxy S25 Ultra batte iPhone 17 Pro Max...
'BioWare potrebbe essere venduta': lo sc...
Musk lascia Netflix tra polemiche e canc...
Instagram sperimenta una home in stile T...
4 super TV svenduti su Amazon: c'è...
Galaxy A56 5G a soli 369€: il re delle v...
Nothing guarda al futuro: con Essential ...
SAP NOW AI Tour Milan: non perderti l'ap...
19 funzioni in un solo dispositivo: la s...
Vi siete accorti? È tornato il -15% Amaz...
Microsoft lancia la sfida: il futuro dei...
iPhone 16 a 699€ in 4 colori su Amazon: ...
È la fine per il software libero ...
Ritorno di fiamma per Windows 7: la quot...
Robot aspirapolvere e lavapavimenti Drea...
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: 10:00.


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