Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Con un semplice dialogo in linguaggio naturale e la potenza di una scheda video di fascia alta è possibile costruire software funzionante da zero, senza scrivere una riga di codice e senza inviare un solo byte dei propri dati a server esterni
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Samsung rinnova la serie pieghevole di punta con Galaxy Z Fold8 Ultra: pannello interno da 8 pollici quasi senza piega, cerniera Flex Titanium, Snapdragon 8 Elite Gen 5 for Galaxy e batteria finalmente da 5.000 mAh. Prezzo italiano da 2.299 a 2.899 euro. Tra colorimetro, benchmark reali e giorni di uso quotidiano, ecco dove questo pieghevole convince e dove il nome Ultra fatica ancora a trovare piena giustificazione
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-06-2007, 08:38   #1
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
[Java] FIFO artigianale

volevo creare una classe che emulasse uno stack, per capire come funzionano gli array, ma non ci sono riuscito
quando compilo ci sono molti errori, molti riferiti al metodo length():
questo è il codice:
Codice:
public class FIFO {
	int[] a;

	public void add(int elem) {
		int[] temp = a;
		a = new int[a.length() + 1];
		for (int i = 0; i < temp.length(); i++) {
			a[i+1] = temp[i];
		}
		a[0] = elem;
	}

	public int pop() {
		int[] temp = a;
		a = new int[a.length() - 1];
		for (int i = 0; i < temp.length() - 1; i++) {
			a[i] = temp[i];
		}
		return temp[temp.length() - 1];
	}
}
e questi sono gli errori:
Codice:
C:\Users\AngeL\Desktop\FIFO.java:6: cannot find symbol
symbol  : method length()
location: class int[]
		a = new int[a.length() + 1];
		             ^
C:\Users\AngeL\Desktop\FIFO.java:6: operator + cannot be applied to Array.length,int
		a = new int[a.length() + 1];
		                    ^
C:\Users\AngeL\Desktop\FIFO.java:6: incompatible types
found   : <nulltype>
required: int
		a = new int[a.length() + 1];
		                       ^
C:\Users\AngeL\Desktop\FIFO.java:7: cannot find symbol
symbol  : method length()
location: class int[]
		for (int i = 0; i < temp.length(); i++) {
		                        ^
C:\Users\AngeL\Desktop\FIFO.java:15: cannot find symbol
symbol  : method length()
location: class int[]
		a = new int[a.length() - 1];
		             ^
C:\Users\AngeL\Desktop\FIFO.java:16: cannot find symbol
symbol  : method length()
location: class int[]
		for (int i = 0; i < temp.length() - 1; i++) {
		                        ^
C:\Users\AngeL\Desktop\FIFO.java:19: cannot find symbol
symbol  : method length()
location: class int[]
		return temp[temp.length() - 1];
		                ^
7 errors

Tool completed with exit code 1
che ho sbagliato?
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2007, 09:00   #2
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
temp.length

NON temp.length()

e lo stesso in tutti gli altri punti

Ma usare un IDE decente con il syntax highlighting, no eh?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2007, 09:35   #3
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da AngeL) Guarda i messaggi
volevo creare una classe che emulasse uno stack, per capire come funzionano gli array, ma non ci sono riuscito
Innanzitutto stack non vuol dire un comportamento FIFO ma semmai LIFO.
Poi comunque la tua tecnica di ridimensionare l'array e spostare fisicamente tutti gli elementi dell'array non è il massimo della efficienza ....
In genere volendo usare un array, se si realizza un LIFO (stack) si gestisce la dimensione in modo "logico", non fisico. E nel caso di FIFO (coda) si usa array gestito in modo "circolare".
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2007, 10:25   #4
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
Ma usare un IDE decente con il syntax highlighting, no eh?
quale mi consigli? io adesso uso textpad... prima avevo notepad++ ma non funziona piu'... magari provo a reinstallarlo

Quote:
Originariamente inviato da andbin Guarda i messaggi
Innanzitutto stack non vuol dire un comportamento FIFO ma semmai LIFO.
uh.. volevo dire coda
Quote:
Originariamente inviato da andbin Guarda i messaggi
nel caso di FIFO (coda) si usa array gestito in modo "circolare".
in che modo?
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2007, 11:09   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da AngeL) Guarda i messaggi
uh.. volevo dire coda
in che modo?
Questa è una classe che avevo fatto un po' di tempo fa:
Codice:
class FixedQueue<E>
{
    private Object[] elements;
    private int front;
    private int count;

    public FixedQueue (int size)
    {
        if (size < 1)
            throw new IllegalArgumentException ("size cannot be lower than 1");

        elements = new Object[size];

        front = 0;
        count = 0;
    }

    public synchronized void insert (E item)
        throws InterruptedException
    {
        while (count == elements.length)
            wait ();

        elements[(front+count) % elements.length] = item;
        count++;

        notifyAll ();
    }

    public synchronized E extract ()
        throws InterruptedException
    {
        while (count == 0)
            wait ();

        @SuppressWarnings("unchecked")
        E item = (E) elements[front];

        front = (front + 1) % elements.length;
        count--;

        notifyAll ();
        return item;
    }
}
Nota che è: 1) generica 2) sincronizzata per uso multithread (che è il caso tipico di uso per una coda) 3) bloccante se l'inserimento trova la coda piena o se la estrazione trova la coda vuota.

Ma a parte queste cose, il concetto che usa è appunto un array "circolare".
Codice:
       front
         |
         |
XXX------XXXXX
         ---->
-->
  count
'front' indica il "fronte" della coda (da cui si estrae) e 'count' indica la dimensione "logica" della coda.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2007, 11:32   #6
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
Quote:
Originariamente inviato da andbin Guarda i messaggi
Questa è una classe che avevo fatto un po' di tempo fa:
grazie ora me la studio un po'
AngeL) è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
La stella S301 è così vici...
Chery accelera sulla robotica: Aimoga si...
Voigtländer Nokton 23mm e 35mm f/1....
Il Lunar Reconnaissance Orbiter della NA...
Prova a beffare il tribunale con un mess...
Pasticcio Freelander: usa l'immagine di ...
A New York apre la clinica del fondatore...
Control Resonant entra in fase Gold e ri...
HONOR Pad 20 Pro è ufficiale: un ottimo ...
Tesla Robotaxi sfonda dei dissuasori: il...
Call of Duty: Modern Warfare 4 presenta ...
Intel Arc più veloce fino al 5% s...
Il tuo ETF ha molta più NVIDIA di...
Il Fairphone Gen 6+ è ufficiale con un n...
Stellantis, il titolo crolla: alla borsa...
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: 18:59.


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