Geneerisen tyypin käyttö javassa. (jdk 1.5+)
/*
* Toteutetaan Jono-tietorakenne käyttämällä hyväksi javan geneeriset tyypit
*
*
* Jono on järjestettyjen alkioiden kokoelma, jossa lisäykset tapahtuvat aina
* loppuun ja jossa alkio voidaan ottaa vain listan alusta.
*
* Jonon pitäisi toteutaa seuraavat operaatiot:
* enqueue - Vie alkion jonon loppuun
* dequeue - Ottaa alkion jonon alusta
* is_empty - Onko jono tyhjä
*/
class Queue<T>
{
private static final int MAX_QUEUE = 100;
private T[] obj;
private int first = 50;
private int last = 50;
private int number_of_obj = 0;
public Queue() { obj = (T[]) new Object[MAX_QUEUE]; }
// Viedään alkio jonon lopuun
public void enqueue( T o )
{
obj[last++] = o;
++number_of_obj;
// varmistetaan ettei mennyt taulukon ulkopuolelle
if( last >= MAX_QUEUE )
last = 0;
}
// Otetaan alkio jonon alusta
public T dequeue()
{
T o = obj[first++];
--number_of_obj;
// varmistetaan ettei mennyt taulukon ulkopuolelle
if( first >= MAX_QUEUE )
{
first = 0;
}
return o;
}
// Onko jono tyhjä
public boolean is_empty()
{
return (number_of_obj == 0);
}
}
public class QueueDemo
{
public static void main( String[] args )
{
Queue<String> countrys = new Queue<String>(); // Stringin tilalla voisi olla joku
// muu tyyppi, vaikapa Float
countrys.enqueue( "Finland" );
countrys.enqueue( "Canada" );
countrys.enqueue( "France" );
// Tulostetaan nyt jonon sisältö
for( int i=1; !countrys.is_empty(); i++ )
System.out.printf( "%d: %s%n", i, countrys.dequeue() );
}
}Aihe on jo aika vanha, joten et voi enää vastata siihen.