Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-02-2011, 12:39   #1
lebon
Senior Member
 
L'Avatar di lebon
 
Iscritto dal: Jan 2009
Città: Mercogliano (AV)
Messaggi: 602
[JAVA]Stampare singola di elementi di un array di oggetti

Salve a tutti.
Il mio problema è il seguente : ho implementato una struttura dati ovvero un array di oggetti, i quali oggetti rappresentano libri con titolo, nome, autore categoria ecc. una volta caricato il vettore, dovrei stampare una e una sola volta una categoria. Ad esempio nel vettore vi è : matematica, storia, geografia, matematica, geografia, analisi ; dovrei stampare : matematica, storia e analisi.
ho implementato un metodo ma non funge nel caso vi è più di una posizione di differenza tra le tipologie uguali.

sapreste consigliarmi una soluzione ?
__________________
Codice:
Trattative Positive davidep85 (2 trattative), Xio, daniele_carrrr, The plex, gRo87, orochi, oro125, DREADMANWALKING, g0ldf3n1x, neongio, luka734, Sinister, Ch3f, m1kele, Thebaro, Maverick_Selection, Gabba88, nicola1283.
lebon è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 13:24   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da lebon Guarda i messaggi
sapreste consigliarmi una soluzione?
Se il codice che implementi non deve sottostare a particolari costrizioni (ad esempio stai eseguendo un esercizio assegnato che vieta esplicitamente di usare librerie) potresti implementare un classe Archivio la quale gestisce internamente una mappa (java.util.Map e sue implementazioni) dove la chiave è la Categoria di un libro, e il valore è una lista (java.util.List e sue implementazioni) di libri appartenenti a quella categoria.

Quando un client di Archivio vuole stamapare tutti i libri di una certa categoria deve solo chiedere ad Archivio di darglieli specificando la Categoria desiderata (Archivio restituirà la lista di libri associata a quella Categoria).

Un'altra idea: invece di usare una mappa, Archivio conserva tutti i libri in una sequenza (una collection qualsiasi, basta che sia iterabile) ed espone un metodo che permette ad un client di ottenere un iterator "personalizzato", ovvero che itera i libri restituendo il prossimo solo se la sua categoria è uguale a quella specificata dal client.

Questo molto "a spanne", senza sapere altri dettagli è difficile scendere nei particolari, e sempre se puoi usare il Collection Framework definito nel JDK.

In ogni caso, senza il codice che hai scritto, è impossibile rilevare l'errore: posta il codice
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 15:42   #3
lebon
Senior Member
 
L'Avatar di lebon
 
Iscritto dal: Jan 2009
Città: Mercogliano (AV)
Messaggi: 602
Premetto che è la traccia assegnata dal professore ed è senza restrizioni, questa è la traccia così per rendere l'idea del lavoro : Creare un programma in java che inserito un vettore di libri ,ognuno dei quali è scritto da un singolo autore, esegua le seguenti operazioni : stampi i libri con pagine superiori a K, visualizzi in ordine alfabetico le case editrici, elenchi le categorie di libri(una e una sola), ricerchi un libro anche senza l'integrità del titolo.

il metodo da me scritto è giusto un abbozzo, molto "infantile"
Codice:
public void stampaCategorie()
	{
		String ricerca = null;
	
		System.out.println("\n Categorie di libri presenti : \n");
		
		for(int i=0;i<arraylibri.length-1;i++)
		{
			if((arraylibri[i].tipologia)!=(arraylibri[i+1].tipologia))
			{
				System.out.println(arraylibri[i].tipologia);
			}
			else
			{
				System.out.println(arraylibri[i-1].tipologia);
			}
			
		}
	}
per la precisione sono fermo all'ordinamento alfabetico e questo, ho incominciato dalle categorie vedendolo più semplice, ma non lo è affatto. Da quanto si capisce, è da poco che studio JAVA, quindi chiedo scusa in anticipo per le boiate che ho scritto nel codice o altro
__________________
Codice:
Trattative Positive davidep85 (2 trattative), Xio, daniele_carrrr, The plex, gRo87, orochi, oro125, DREADMANWALKING, g0ldf3n1x, neongio, luka734, Sinister, Ch3f, m1kele, Thebaro, Maverick_Selection, Gabba88, nicola1283.
lebon è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 17:05   #4
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Certo che 'sti esercizi... son sempre quelli. E' un mistero come ci si possa appassionare alla programmazione con queste perle di gioia.

Ci sono un milione di soluzione ma nel contesto del problema è probabile che l'esercizio voglia farti pasticciare con l'ordinamento.

Una soluzione potrebbe essere questa:

1. ordini l'array per categoria
2. data una variabile x che denota l'ultima categoria stampata:
2.1 per ogni elemento dell'array, se la categoria è diversa da x
2.1.1 x = categoria, stampa(x)

Che ha un costo pari all'ordinamento + N. Altre non me ne vengono in mente.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 17:38   #5
lebon
Senior Member
 
L'Avatar di lebon
 
Iscritto dal: Jan 2009
Città: Mercogliano (AV)
Messaggi: 602
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Certo che 'sti esercizi... son sempre quelli. E' un mistero come ci si possa appassionare alla programmazione con queste perle di gioia.

Ci sono un milione di soluzione ma nel contesto del problema è probabile che l'esercizio voglia farti pasticciare con l'ordinamento.

Una soluzione potrebbe essere questa:

1. ordini l'array per categoria
2. data una variabile x che denota l'ultima categoria stampata:
2.1 per ogni elemento dell'array, se la categoria è diversa da x
2.1.1 x = categoria, stampa(x)

Che ha un costo pari all'ordinamento + N. Altre non me ne vengono in mente.
beh, noi per quanto riguarda l'ordinamento non abbiamo fatto nulla, potresti essere più preciso indicando classi o metodi di java ?
__________________
Codice:
Trattative Positive davidep85 (2 trattative), Xio, daniele_carrrr, The plex, gRo87, orochi, oro125, DREADMANWALKING, g0ldf3n1x, neongio, luka734, Sinister, Ch3f, m1kele, Thebaro, Maverick_Selection, Gabba88, nicola1283.
lebon è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 17:51   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da lebon Guarda i messaggi
beh, noi per quanto riguarda l'ordinamento non abbiamo fatto nulla, potresti essere più preciso indicando classi o metodi di java ?
Studiati l'interfaccia java.util.Comparator; puoi usarla per definire il criterio di ordinamento che vuoi, poi la usi passandola al metodo Collections.sort assieme alla lista da ordinare (classe java.util.Collections).

Ti posto un link alla pagina dei Java Tutorials che tratta il supporto al meccanismo di ordinamento fornito dal Collection Framework del JDK:
http://download.oracle.com/javase/tu...ces/order.html
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 17:54   #7
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Per ordinare l'array puoi usare il metodo sort di Arrays:

link

Il Comparator definirà l'ordine usando il valore del campo categoria dei libri.

Una volta ordinato... be', è fatta. Essendo un esercizio di scuola, non posso chiaramente scendere più nei dettagli di così.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 09-02-2011, 18:00   #8
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Se ti interessa, perchè il prof potrebbe chiederlo e tu non vuoi fare la figura del tonno, sappi che l'algoritmo usato da sort (sia per le Collection che per gli array) se il numero degli elementi supera un certo valore (mi pare se sono più di una decina) è un merge sort in place, altrimenti usa un insertion sort.

Queste info le si ricavano dalla lettura dei javadoc e/o consultando il sorgente delle relative classi del JDK.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2011, 19:59   #9
lebon
Senior Member
 
L'Avatar di lebon
 
Iscritto dal: Jan 2009
Città: Mercogliano (AV)
Messaggi: 602
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Certo che 'sti esercizi... son sempre quelli. E' un mistero come ci si possa appassionare alla programmazione con queste perle di gioia.

Ci sono un milione di soluzione ma nel contesto del problema è probabile che l'esercizio voglia farti pasticciare con l'ordinamento.

Una soluzione potrebbe essere questa:

1. ordini l'array per categoria
2. data una variabile x che denota l'ultima categoria stampata:
2.1 per ogni elemento dell'array, se la categoria è diversa da x
2.1.1 x = categoria, stampa(x)

Che ha un costo pari all'ordinamento + N. Altre non me ne vengono in mente.
allora ci sono degli sviluppi, ho completato tutti i metodi tranne questo, però ora mi sono studiato la classe Arrays, quindi l'ordinamento mi è molto chiaro
potresti spiegare meglio gli ultimi 3 punti ?
__________________
Codice:
Trattative Positive davidep85 (2 trattative), Xio, daniele_carrrr, The plex, gRo87, orochi, oro125, DREADMANWALKING, g0ldf3n1x, neongio, luka734, Sinister, Ch3f, m1kele, Thebaro, Maverick_Selection, Gabba88, nicola1283.
lebon è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2011, 20:10   #10
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Poniamo che queste siano i libri nel tuo array, rappresentati dalle rispettive categorie:

giallo
rosa
fantascienza
rosa
fantasy
giallo
rosa
fantasy
fantascienza

Una volta ordinato, diventa:

fantascienza
fantascienza
fantasy
fantasy
giallo
giallo
rosa
rosa
rosa

Ora, come fai a stampare per ogni gruppo il nome che in quel gruppo appare più volte? Devi capire quando il gruppo cambia. E quando cambia il gruppo? Quando il suo nome è diverso da quello del gruppo in cui eri fino a un attimo prima. Il cambiamento è una varia-zione, ti servirà una varia-bile, in cui infili il valore dell'ultimo gruppo in cui sei stato, che sarà inizialmente null. Confronti il valore di questa variabile con il valore del libro che stai scorrendo nell'array, se è diverso significa che il gruppo è cambiato. Giusto o concordi?
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 10-02-2011, 22:42   #11
lebon
Senior Member
 
L'Avatar di lebon
 
Iscritto dal: Jan 2009
Città: Mercogliano (AV)
Messaggi: 602
bene concordo con te, ma ho pensato ad un altra soluzione penso più ingegnosa

Nel momento in cui carico il vettore, faccio un controllo nel quale vedo se il valore è gia stato inserito nell'array, nel caso è già presente non gli inserisco nulla, mentre se non è stato mai inserito lo inserisce. Finito il caricamento, stampo il contenuto dell'array , l'unica cosa ho problemi nel tradurre in JAVA l'idea
Codice:
public void stampaCategorie()
	{
		String categorie[] = new String[arraylibri.length];
		
		System.out.println("le categorie di libri presenti sono : ");		
		
		for(int i=0;i<arraylibri.length;i++)
		{
			categorie[i] = arraylibri[i].tipologia;
			for(int j=1;j<arraylibri.length-1;j++)
			{
				if(categorie[i].equals(arraylibri[j].tipologia))
				{
					break;
				}
				else
				{
					categorie[i] = arraylibri[i].tipologia; 
				}
				
			}
		}	
			
		for(int z=0;z<categorie.length;z++)
		{
			System.out.println("\n"+categorie[z]);
		}
				
			
	}
Non sò cos'è che non và, me le stampa tutte le categorie
__________________
Codice:
Trattative Positive davidep85 (2 trattative), Xio, daniele_carrrr, The plex, gRo87, orochi, oro125, DREADMANWALKING, g0ldf3n1x, neongio, luka734, Sinister, Ch3f, m1kele, Thebaro, Maverick_Selection, Gabba88, nicola1283.
lebon è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2011, 10:50   #12
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da lebon Guarda i messaggi
bene concordo con te, ma ho pensato ad un altra soluzione penso più ingegnosa

[...snip...]

Non sò cos'è che non và, me le stampa tutte le categorie
Ufficio complicazioni affari semplici
Il tuo modo di procedere potrebbe anche andare, solo che poi lo devi giustificare al prof. (almeno credo).
La soluzione che ti ha presentato PGI per stampare le categorie itera due volte sul'array dei libri, la tua invece itera un po' di più prima di arrivare a stampare.

Quando tenti di risolvere un problema programmando, ricorda che poco è bello e semplice è meglio; se poi riesci a risolvere un probelma sia in modo semplice che con poco, hurrà
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2011, 13:56   #13
lebon
Senior Member
 
L'Avatar di lebon
 
Iscritto dal: Jan 2009
Città: Mercogliano (AV)
Messaggi: 602
Lambo di questa mattina ora funge alla perfezione
Codice:
public void stampaCategorie()
	{
		String categorie[] = new String[arraylibri.length];
		
		System.out.println("le categorie di libri presenti sono : ");		
	
		int dimCategorie = 0;			//categorie al momento
		int j = 0;
		for(int i=0;i<arraylibri.length;i++)
		{
			boolean flag=true;
			for(j=0;(j<dimCategorie)&&(flag);j++)
			{
				if(categorie[j].equals(arraylibri[i].tipologia))
				{
					flag=false;
				}
			}
			
			if(flag)
			{
					categorie[dimCategorie] = arraylibri[i].tipologia; 
					dimCategorie++;
			}	
			
		}	
		
		for(int z=0;z<dimCategorie;z++)
		{
			System.out.println("\n"+categorie[z]);
		}
				
	}
Spero possa servire a qualcuno
__________________
Codice:
Trattative Positive davidep85 (2 trattative), Xio, daniele_carrrr, The plex, gRo87, orochi, oro125, DREADMANWALKING, g0ldf3n1x, neongio, luka734, Sinister, Ch3f, m1kele, Thebaro, Maverick_Selection, Gabba88, nicola1283.
lebon è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2011, 14:08   #14
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Stavo scrivendo una risposta in sette volumi più indice e bibliografia quando mi è arrivata la notifica del messaggio. Te la sei cavata per il rotto della cuffia

Usa il codice che hai scritto tu perchè è sempre meglio un'idea propria ad una altrui ma tieni conto che la soluzione che proponi non fa un buon uso dello spazio e del tempo.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2011, 22:49   #15
lebon
Senior Member
 
L'Avatar di lebon
 
Iscritto dal: Jan 2009
Città: Mercogliano (AV)
Messaggi: 602
Quote:
Stavo scrivendo una risposta in sette volumi più indice e bibliografia quando mi è arrivata la notifica del messaggio. Te la sei cavata per il rotto della cuffia
hahahahah

per quanto riguarda lo spazio e il tempo ?...beh comunque l'importante e che funzioni, che mi ero letteralmente annoiato di questo esercizio.
__________________
Codice:
Trattative Positive davidep85 (2 trattative), Xio, daniele_carrrr, The plex, gRo87, orochi, oro125, DREADMANWALKING, g0ldf3n1x, neongio, luka734, Sinister, Ch3f, m1kele, Thebaro, Maverick_Selection, Gabba88, nicola1283.
lebon è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Il nucleo della cometa interstellare 3I/...
La Russia potrebbe sviluppare un'arma pe...
Manda la RAM Corsair in assistenza, rice...
ASUS ROG G1000 con 'AniMe Holo': saranno...
Un test di longevità ha messo alla prova...
Incat inizia i test dell'incredibile tra...
LG Sound Suite: al CES il sistema audio ...
Avengers Doomsday, il primo trailer &egr...
La crisi delle memorie non farà sconti a...
Il trailer più atteso dell'anno &...
I gamer vogliono i monitor OLED: sopratt...
Samsung alza l’asticella dei televisori ...
Energie rinnovabili 2025: quasi 42% del ...
Le auto elettriche volano in tutta Europ...
Nuovo look per la finestra Esegui su Win...
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: 06:48.


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