Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-08-2006, 17:37   #1
aduri
Member
 
Iscritto dal: Nov 2005
Città: Genova
Messaggi: 75
(Java) problemi con linkedList e rnd

Sto cercando di andare per gradi per raggiungere la soluzione del problema richiesto dal prof.

Testo:
Definire la classe SortedLinkedList che estende la classe LinkedList (vista a
lezione) PREMETTO CHE IO NON L'HO VISTA E NON SONO RIUSCITO AD AVERE APPUNTI
e che mantiene ordinata la lista: ridefinire il metodo add() affinché inserisca gli
elementi in ordine. Gli oggetti da inserire devono essere confrontabili e quindi devono
implementare l’interfaccia Comparable. Si ordini la lista in modo che il valore massimo
sia in testa (first) e il valore minimo in coda (last). Verificare la correttezza
dell’implementazione: per esempio usando sequenze di stringhe in ordine, in ordine inverso,
casuali, uguali. Verificare con sequenze di 21 elementi Integer casuali, con valori
compresi nell’intervallo [-30,30].


Questa e' la prima parte del codice.

Il mio primo problema e' capire come comprendere anche i numeri negativi nella lista random.
Il codice ne elenca 21 interi positivi.
Il secondo e' capire come ridefinire il metodo add() in una LinkedList???

Codice:
import java.util.*;

public class TestLinkedList extends LinkedList
{
private static int elementi;

public static void main ( String []args ) 
    {
       if(args.length > 0)
          elementi = Integer.parseInt(args[0]);
       else
         elementi = 21;
         System.out.println( "Prova su " + elementi + "elementi." );

         LinkedList l = new LinkedList();

         // riempi la lista di numeri a caso tra -30 e +30

          ListIterator it_aggiunta = l.listIterator();
       for ( int i = 0; i < elementi; i++ ) 
       {
          int rand = (int)Math.round
                        ( Math.random() * 30 );
          it_aggiunta.add( new Integer( rand ) );
       }

       // stampa tutti i valori

       System.out.println( "-Collezione completa:" );
       stampaCollezione( l );

       }

    private static void stampaCollezione
                                   ( Collection c ) 
    {
       Iterator i = c.iterator();
       while ( i.hasNext() ) 
       {
          System.out.println( i.next() );
       }
    }
}
aduri è offline   Rispondi citando il messaggio o parte di esso
Old 21-08-2006, 22:42   #2
aduri
Member
 
Iscritto dal: Nov 2005
Città: Genova
Messaggi: 75
Sono riuscito a fare un passo in avanti e visualizzo i numeri come richiesto.

Ora cerco di capire come fare l'overdrive del metodo add() con compareTo().
Allego il codice con compilazione a buon fine (a scopo didattico) x chi e' interessato:




Codice:

import java.util.*;
public class SortedLinkedList extends LinkedList
{
private static int elementi;
public static void main ( String []args )
{
if(args.length > 0)
elementi = Integer.parseInt(args[0]);
else
elementi = 21;
System.out.println( "Prova su " + elementi + "elementi." );
LinkedList l = new LinkedList();
// riempi la lista di numeri a caso tra -30 e +30
ListIterator it_aggiunta = l.listIterator();
Random generatore=new Random();
for ( int i = 0; i < elementi; i++ )
{
int segno=generatore.nextInt(2);// 0 o 1
int n=generatore.nextInt(31);
if(n<15)
l.add(new Integer(- n ));
else
l.add(new Integer(n));
}
// stampa tutti i valori
System.out.println( "-Collezione completa:" );
stampaCollezione( l );
}
private static void stampaCollezione
( Collection c )
{
Iterator i = c.iterator();
while ( i.hasNext() )
{
System.out.println( i.next() );
}
}
aduri è offline   Rispondi citando il messaggio o parte di esso
Old 22-08-2006, 08:50   #3
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Secondo me ti conviene creare la classe SortedLinkedList a parte, e non metterci il main dentro, ma mettere il main da un'altra parte(io lo chiamo StarterClass).

Per la ridefinizione del metodo add(Object o) non farti impressionare, non è difficile.

per prima cosa devi anche implementare il metodo compareTo(Object o) in modo che hai un metodo di confronto diretto, senza dover andare a controllare ogni volta.

il compareTo() restituisce, tipicamente, chiamato in questo modo
Codice:
a.compareTo(b)=-1  se a<b
a.compareTo(b)=0  se a=b
a.compareTo(b)=1  se a>b
quindi, detto ciò, credo che sia abbastanza facile capire come ordinare la lista.
se hai problemi fai un fischio
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Alcune partite NBA saranno trasmesse in ...
Intel Core 13000 e 14000 aumentano uffic...
Gemini sta per arrivare in Google Maps: ...
2 minuti per vedere le 27 offerte imperd...
Ray-Ban Meta Display: tecnologia sorpren...
Un mini PC a prezzo stracciato, non cerc...
Al via i coupon nascosti di ottobre: qua...
Ferrari Elettrica si aggiorna solo in of...
Doppio sconto sugli smartphone top Xiaom...
Samsung è sempre più prota...
ChatGPT ha pregiudizi politici? Ecco cos...
Un solo iPhone rubato ha portato alla sc...
Xiaomi 17 Ultra sta arrivando: ecco come...
Il Motorola Edge 70 non ha più se...
Alcuni Galaxy S26 utilizzeranno il chip ...
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: 17:43.


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