
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Traffyk - I'm driving crazy &#187; Java</title>
	<atom:link href="http://www.traffyk.com/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.traffyk.com</link>
	<description>Una volta davo consigli e risorse per blog.. ora invece booh quello che mi pare :p</description>
	<lastBuildDate>Fri, 09 Dec 2011 19:22:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Tipi di dati astratti: la coda (queue) e algoritmo in Java 5.0</title>
		<link>http://www.traffyk.com/2007/10/03/tipi-di-dati-astratti-la-coda-queue-e-algoritmo-in-java-50/</link>
		<comments>http://www.traffyk.com/2007/10/03/tipi-di-dati-astratti-la-coda-queue-e-algoritmo-in-java-50/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 20:39:17 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[School]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programmazione]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/10/03/tipi-di-dati-astratti-la-coda-queue-e-algoritmo-in-java-50/</guid>
		<description><![CDATA[Secondo capitolo della puntata algoritmi e strutture dati la coda. Un coda una struttura dati molto semplice, segue il principio FIFO, First In First Out, il primo ad entrare il primo ad uscire.. o potremmo dire chi primo arriva meglio alloggia!:P Oggi non posso spiegarvi tutto, come sempre confido nei vostri commenti e richieste di [...]]]></description>
			<content:encoded><![CDATA[<p>Secondo capitolo della puntata <a href="http://www.traffyk.com/tag/algoritmi-e-strutture-dati/">algoritmi e strutture dati</a> la <a href="http://it.wikipedia.org/wiki/Coda_%28informatica%29">coda</a>.</p>
<div align="center"><img height="236" alt="coda-queue" src="http://www.traffyk.com/blog/wp-content/uploads/2007/10/coda-queue.png" width="444" /></div>
<p>Un coda  una struttura dati molto semplice, segue il principio <a href="http://it.wikipedia.org/wiki/FIFO">FIFO</a>, First In First Out, il primo ad entrare  il primo ad uscire.. o potremmo dire chi primo arriva meglio alloggia!:P</p>
<p>Oggi non posso spiegarvi tutto, come sempre confido nei vostri commenti e richieste di informazioni specifiche per contribuire al meglio al post. Vediamo subito quali metodi ha l&#8217;interfaccia <strong>Queue</strong>:</p>
<ul>
<li><strong>enqueue(e)</strong>: accoda l&#8217;elemento <em>e</em> alla coda, in pratica posiziona dietro l&#8217;elemento;</li>
<li><strong>dequeue()</strong>: prende il primo elemento della coda, ovvero il primo ad essere entrato, lancia un&#8217;eccezione se vuota;</li>
<li><strong>front()</strong>: simile al pop dello <a href="http://www.traffyk.com/2007/10/02/tipi-di-dati-astratti-lo-stack-con-algoritmo-in-java-50/">stack</a>, legge il primo elemento della coda senza per toglierlo da essa, lancia un&#8217;eccezione se vuota;</li>
<li><strong>size()</strong>: un classico ormai, restituisce la dimensione;</li>
<li><strong>isEmpty()</strong>: booleano per sapere se la coda  vuota o occupata da elementi.</li>
</ul>
<p><strong>Vediamo quindi l&#8217;interfaccia:</strong></p>
<pre lang="java5" line="1">
package queue;

import exception.EmptyQueueException;

public interface Queue&lt;E&gt; {

 public int size();
 public boolean isEmpty();
 public E front() throws EmptyQueueException;
 public void enqueue(E element);
 public E dequeue()throws EmptyQueueException;
}
</pre>
<p><span id="more-1003"></span></p>
<p><strong>Questa  la classe della nuova eccezione che abbiamo creato:</strong></p>
<pre lang="java5" line="1">
package exception;

public class EmptyQueueException extends RuntimeException{
 /**
  *
  */
 private static final long serialVersionUID = -6005613600247835251L;

 public EmptyQueueException(String errore) {
  super(errore);
 }

}
</pre>
<p><strong>Classe ArrayQueue per implementare l&#8217;interfaccia con un array:</strong></p>
<pre lang="java5" line="1">
package queue;

import exception.EmptyQueueException;
import exception.FullQueueException;

public class ArrayQueue&lt;E&gt; implements Queue&lt;E&gt;{
 protected int capacity;
 public static final int CAPACITY = 1000;
 protected E[] Q;
 protected int f, r = 0;

 public ArrayQueue() {
  this(CAPACITY);
 }
 @SuppressWarnings("unchecked")
 public ArrayQueue(int capacity) {
  this.capacity=capacity;
  Q = (E[]) new Object[capacity];
 }
 public boolean isEmpty() {
  return (f==r);
 }
 public E dequeue() throws EmptyQueueException {
  if (isEmpty())
   throw new EmptyQueueException("Queue is empty");
  E element;
  element = Q[f];
  Q[f] = null;
  f = (f+1) % Q.length;
  return element;
 }
 public void enqueue(E element) throws FullQueueException{
  if (size() == Q.length-1)
   throw new FullQueueException("Queue is full");
  Q[r] = element;
  r = (r+1) % Q.length;
 }
 public int size() {
  return ((Q.length-f+r) % Q.length);
 }
 public E front() throws EmptyQueueException {
  if (isEmpty()) throw new EmptyQueueException("Queue is empty");
  return Q[f];
 }

}
</pre>
<p><strong>Classe dell&#8217;altra eccezione:</strong></p>
<pre lang="java5" line="1">
package exception;

public class FullQueueException extends RuntimeException{
 /**
  *
  */
 private static final long serialVersionUID = -6005613600247835251L;

 public FullQueueException(String errore) {
  super(errore);
 }

}
</pre>
<p><strong>E infine la classe di test:</strong></p>
<pre lang="java5" line="1">
package queue;

public class TestArrayQueue {
	public static void main(String[] args) {
		Queue<integer> A = new ArrayQueue</integer><integer>();
		A.enqueue(5);
		System.out.println("Enqueue 5");
		A.enqueue(3);
		System.out.println("Enqueue 3");
		System.out.println("Dequeue "+A.dequeue());
		A.enqueue(7);
		System.out.println("Enqueue 7");
		System.out.println("Dequeue "+A.dequeue());
		System.out.println("Front "+A.front());
		System.out.println("Dequeue "+A.dequeue());
		if (!A.isEmpty()) A.dequeue();
		A.enqueue(9);
		System.out.println("Enqueue 9");
		A.enqueue(7);
		System.out.println("Enqueue 7");
		System.out.println("Size :"+A.size());
		A.enqueue(3);
		System.out.println("Enqueue 3");
		A.enqueue(5);
		System.out.println("Enqueue 5");
		System.out.println("Dequeue "+A.dequeue());

	}
}
</integer></pre>
<p><strong>Buonanotte rag! <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/10/03/tipi-di-dati-astratti-la-coda-queue-e-algoritmo-in-java-50/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tipi di dati astratti: Lo Stack, con algoritmo in Java 5.0</title>
		<link>http://www.traffyk.com/2007/10/02/tipi-di-dati-astratti-lo-stack-con-algoritmo-in-java-50/</link>
		<comments>http://www.traffyk.com/2007/10/02/tipi-di-dati-astratti-lo-stack-con-algoritmo-in-java-50/#comments</comments>
		<pubDate>Tue, 02 Oct 2007 21:59:08 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[School]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programmazione]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/10/01/tipi-di-dati-astratti-lo-stack-con-algoritmo-in-java-50/</guid>
		<description><![CDATA[Eccoci finalmente arrivati alla prima stuttura di dati che andremo ad analizzare, lo Stack. Prima di cominciare vorrei fare una piccola premessa, utilizzo il linguaggio Java per implementare gli algoritmi (in particolare Java 5.0), si presume (come ho citato nell&#8217;articolo precedente) che conosciate almeno in piccola parte il linguaggio Java, in particolare Classi, interfacce, Variabili [...]]]></description>
			<content:encoded><![CDATA[<p>Eccoci finalmente arrivati alla prima stuttura di dati che andremo ad analizzare, lo <strong><a href="http://it.wikipedia.org/wiki/Stack">Stack</a></strong>.</p>
<div align="center"><img src="http://www.traffyk.com/blog/wp-content/uploads/2007/10/391px-data-stack.svg-1.png" alt="391px-Data stack" height="281" width="391" /></div>
<p>Prima di cominciare vorrei fare una piccola premessa, utilizzo il linguaggio <a href="http://java.com/">Java</a> per implementare gli algoritmi (in particolare Java 5.0), si presume (come ho citato nell&#8217;articolo precedente) che conosciate almeno in piccola parte il linguaggio Java, in particolare Classi, interfacce, Variabili assegnamenti e operatori/operazioni, cicli, packages e chi pi ne ha pi ne metta. Non vorrei trattare guide riguardanti la normale programmazione in Java in quanto ci sono degli ottimi libri che permettono di superare addirittura un esame universitario (nel mio caso cos  stato <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  ), mi permetto quindi di citarvi l&#8217;ottimo <a href="http://www.java-net.it/jmonline/">Java Mattone dopo Mattone</a>, liberamente scaricabile e utilizzabile da tutti, non sar aggiornatissimo ma una volta acquisiti i fondamenti iniziali aggiornarsi alle ultime versioni di Java non sar un problema <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  .<span id="more-1001"></span></p>
<p>Uno Stack  una struttura di dati astratta, all&#8217;universit lo chiamiamo <strong>TDA</strong> (Tipo di Dati Astratto), definizione forse pi azzeccata perch una volta definita questa struttura avremo proprio un nuovo tipo di dato da poter utilizzare per i nostri programmi.</p>
<p>Il principio di funzionamento di uno Stack  semplicissimo, immaginate una pila di piatti dove l&#8217;ultimo ad essere posizionato  il primo ad uscire e cos man mano potremo prendere sempre l&#8217;ultimo piatto (elemento/oggetto). Questa tipologia di inserimento/rimozione oggetti prende il nome di <strong>last-in first-out</strong> (<strong>LIFO</strong>), in parole povere il primo ad entrare  l&#8217;ultimo ad uscire.</p>
<p>In uno stack/pila abbiamo principalmente due funzionalit che chiameremo con il nome di metodi:</p>
<ul>
<li><strong>push(e)</strong>: Inserisce l&#8217;elemento <em>e</em>, naturalmente in testa allo stack;</li>
<li><strong>pop()</strong>: pop invece non ha bisogno di argomenti/parametri perch prende, o meglio toglie, dal nostro stack l&#8217;ultimo elemento e ce lo restituisce. In questo metodo per, nel caso lo stack fosse vuoto, avremo un errore perch pop() non sar capace di prendere elementi dallo stack, gli errori in java vengono comunemente definiti come eccezioni;</li>
</ul>
<p>Inoltre ai nostri due metodi che definiscono la base di funzionamento dello stack abbiamo anche 3 metodi aggiuntivi, non saranno obbligatori ma ci permettono di gestire al meglio l&#8217;intero stack e di gestire alcune eccezioni risparmiando cos anche un po di tempo:</p>
<ul>
<li><strong>size()</strong>: ritorna il numero degli elementi nello stack;</li>
<li><strong>isEmpty()</strong>: ritorna un valore booleano (vero, falso) per indicare se lo stack  vuoto o meno;</li>
<li><strong>top()</strong>:top invece  un metodo abbastanza simile al <strong>pop()</strong> soltanto che invece di togliere l&#8217;elemento dallo stack per fornircene il contenuto si limita soltanto a leggerlo e restiturci il risultato, in questo modo naturalmente non potremo leggere il contenuto dell&#8217;elemento successivo (contenuto sotto) finch non effettueremo il <strong>pop()</strong>, anche questo metodo lancia un eccezione nel caso lo stack sia vuoto.</li>
</ul>
<p><strong>Il codice per la rispettiva interfaccia in Java 5.0 sar di questo tipo:</strong></p>
<pre line="1" lang="java5">
 package stack;

 import exception.EmptyStackException;

 public interface Stack&lt;E&gt; {
  public int size();
  public boolean isEmpty();
  public E top() throws EmptyStackException;
  public void push (E element);
  public E pop() throws EmptyStackException;
 }
</pre>
<p>Tramite l&#8217;interfaccia potremo implementare tutti gli algoritmi e definire la struttura di dati che pi ci piace senza dover per forza fornire dettagli sulle nostre implementazioni semplicemente perch dovremmo soddisfare tutti i requisiti richiesti dall&#8217;interfaccia e quindi implementare tutti i metodi. Da notare che importo da un secondo package, <strong>exception</strong>, la classe <strong>EmptyStackException</strong> che ci permetter di gestire i nostri errori di tipo <strong>Stack</strong> Vuoto, il codice  il seguente:</p>
<pre lang="java5" line="1">
package exception;

@SuppressWarnings("serial")
public class EmptyStackException extends RuntimeException{

public EmptyStackException(String exception) {
super(exception);
}

}
</pre>
<p>In questo articolo implementeremo una rudimentale struttura di dati per lo <strong>Stack</strong> grazie ad un array, come potrete ben capire da soli avremi dei problemi:</p>
<ul>
<li>Dovendo dichiarare l???array avremo una dimensione ben definita e quindi non pi modificabile (con tutti i problemi che naturalmente ne deriveranno);</li>
<li>Una volta riempito l???array il push, se eseguito ancora, lancer un???eccezione di stack pieno (<strong>FullStackException</strong>);</li>
<li>Gli elementi nell???array verranno aggiunti da destra verso sinistra;</li>
<li>Riempito l???array e quindi il push per effettuare una nuova push dovremmo per forza di cose effettuare una pop;</li>
</ul>
<p>Vediamo quindi il codice in Java 5.0:</p>
<pre lang="java5" line="1">
package stack;

import exception.EmptyStackException;
import exception.FullStackException;

public class ArrayStack&lt;E&gt; implements Stack&lt;E&gt;{
 protected int capacity;
 public static final int CAPACITY = 1000;
 protected E[] S;
 protected int top = -1;

 public ArrayStack() {
  this(CAPACITY);
 }
 @SuppressWarnings("unchecked")
 public ArrayStack(int capacity) {
  this.capacity=capacity;
  S = (E[]) new Object[capacity];
 }
 public boolean isEmpty() {
  return (top&lt;0);
 }
 public E pop() throws EmptyStackException {
  E element;
  if (isEmpty())
   throw new EmptyStackException("Lo stack e' vuoto.");
  element = S[top];
  S[top--] = null;
  return element;
 }
 public void push(E element) throws FullStackException{
  if (size() == capacity)
   throw new FullStackException("Lo stack e' pieno.");
  S[++top] = element;
 }
 public int size() {
  return top+1;
 }
 public E top() throws EmptyStackException {
  if (isEmpty()) throw new EmptyStackException("Lo stack e' vuoto.");
  return S[top];
 }
 public String toString() {
  String s;
  s = "[";
  if (size() &gt; 0) s+= S[0];
  if (size() &gt; 1)
   for (int i=1; i&lt;= size()-1; i++)
    s += ", " + S[i];
  return s+"]";
 }
 public void status(String op, Object element) {
  System.out.print("------&gt;" + op);
  System.out.println(", returns " + element);
  System.out.print("result: size = "+size() + ", isEmpty = "+ isEmpty());
  System.out.println(", stack: " + this);
 }
}
</pre>
<p>Da notare che  stata richiamata una nuova classe per le <strong>eccezioni di Stack pieno</strong>, seguendo l???esempio della prima classe di Exception  semplicissimo creare un???altra classe con nome variato, ma gia ce ce l???ho salvata in Eclipse vi copio anche questa parte <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  :</p>
<pre lang="java5" line="1">
package exception;

@SuppressWarnings("serial")
public class FullStackException extends RuntimeException{

 public FullStackException(String errore) {
  super(errore);
 }

}
</pre>
<p>Come vedrete ci sono anche alcuni metodi accessori che utilizzeremo per la nostra classe di test:</p>
<pre lang="java5" line="1">
package stack;

public class TestArrayStack {
 public static void main(String[] args) {
  Object o;
  ArrayStack&lt;Integer&gt; A = new ArrayStack&lt;Integer&gt;();
  A.status("new ArrayStack&lt;Integer&gt; A", null);
  A.push(7);
  A.status("A.push(7)", null);
  o = A.pop();
  A.status("A.pop()", o);
  A.push(9);
  A.status("A.push(9)", null);
  o = A.pop();
  A.status("A.pop()", o);
  ArrayStack&lt;String&gt; B = new ArrayStack&lt;String&gt;();
  B.status("new ArrayStack&lt;String&gt; B", null);
  B.push("Bob");
  B.status("B.push(\"Bob\")", null);
  B.push("Alice");
  B.status("B.push(\"Alice\")", null);
  o = B.pop();
  B.status("B.pop()", o);
  B.push("Eve");
  B.status("B.push(\"Eve\")", null);
 }

}
</pre>
<p>Perdonatemi se non mi dilungo a spiegare il codice pi di tanto stasera ho perso 4 ore per poter formattare il codice senza perdere validazione W3C e senza perdere alcune parti di codice di Java 5.0 incompatibili con WordPress (mi chiude i tag in automatico) e con il plugin Wp-Syntax che ho dovuto modificare per eliminare il controllo sulle identazioni e su tutti i caratteri speciali html (su quelli il controllo manuale  sempre migliore <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ), poi con l???editor avanzato sempre su ???disattivato???  chiaro <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Il libro di riferimento  <strong>Data Structures and Algorithms in Java</strong>, fourth edition.<br />
Di Michael T. Goodrich e Roberto Tamassia (in english naturalmente ehehhe ). L???algoritmo rispecchia lo stesso metodo risolutore riportato nel libro, ma il bello cominceremo a vederlo tra poco quando il libro non riporter pi degli esempi tanto carini, ma io l???anno scorso queste cose le ho fatte fino a met corso???diciamo che sono molto anticipato sul libro e sul programma ehehe <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Naturalmente qualsiasi cosa chiedete, nei limiti del possibile prover a darvi una risposta, ma sono dell???idea che questi esercizi dobbiate farveli da soli non vale la pena di copiare questi, si fa una figura di m??? all???interrogazione perch difficilmente si sapr discutere codice non commentato di altre persone ne tantomeno si sapr <strong>dove spostarsi esattamente con lo sguardo e con il ditino</strong>. Sisi mi  stato chiesto addirittura questo in un esame per verificare l???autenticit del mio codice!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/10/02/tipi-di-dati-astratti-lo-stack-con-algoritmo-in-java-50/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Implementiamo degli algoritmi e strutture di dati in Java 5.0</title>
		<link>http://www.traffyk.com/2007/10/01/implementiamo-degli-algoritmi-e-strutture-di-dati-in-java-50/</link>
		<comments>http://www.traffyk.com/2007/10/01/implementiamo-degli-algoritmi-e-strutture-di-dati-in-java-50/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 18:17:06 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[School]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programmazione]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/10/01/implementiamo-degli-algoritmi-e-strutture-di-dati-in-java-50/</guid>
		<description><![CDATA[Salve ragazzi oggi ricominciata l&#8217;Universit&#8230; vediamo un po se riusciamo a studiare insieme&#8230; magari bloggando le cose che faccio mi entrano meglio in testa e forse mi preparer meglio per gli esami oltre al fatto che cos dovr studiare quasi tutti i giorni per poter scrivere l&#8217;articolo Vi parler di un corso molto bello riguardante [...]]]></description>
			<content:encoded><![CDATA[<p><img height="332" alt="322px-Java Logo" src="http://www.traffyk.com/blog/wp-content/uploads/2007/10/322px-java-logo.svg-1.png" width="250" align="left" />Salve ragazzi oggi <strong> ricominciata l&#8217;Universit</strong>&#8230; vediamo un po se riusciamo a studiare insieme&#8230; magari bloggando le cose che faccio mi entrano meglio in testa e forse mi preparer meglio per gli esami oltre al fatto che cos dovr studiare quasi tutti i giorni per poter scrivere l&#8217;articolo <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Vi parler di un corso molto bello riguardante <strong>Laboratorio di</strong> <strong>Algoritmi e Strutture Dati</strong> (da ora in poi conosciuto con il tag <strong><a href="http://www.traffyk.com/tag/lasd">LASD</a></strong>) nel quale vedremo come implementare in <a href="http://www.traffyk.com/tag/java">Java</a> e in particolare in Java 5.0 con le classi generiche Algoritmi e Strutture Dati di grande utilit per i programmatori. Ma prima di tutto conosciamo meglio la definizione di Algoritmi e Strutture Dati:</p>
<blockquote>
<p>Una struttura dati  un&#8217;entit usata per organizzare un insieme di dati all&#8217;interno della <a href="http://it.wikipedia.org/wiki/RAM">memoria</a> del <a href="http://it.wikipedia.org/wiki/Computer">computer</a>, ed eventualmente per memorizzarli in una <a href="http://it.wikipedia.org/wiki/Memoria_di_massa">memoria di massa</a>. La scelta delle strutture dati da utilizzare  strettamente legata a quella degli <a href="http://it.wikipedia.org/wiki/Algoritmo">algoritmi</a>, a tal proposito, solitamente si utilizza il concetto unificato di Algoritmi e Strutture Dati.<span id="more-998"></span> La scelta della struttura dati influir inevitabilmente sull&#8217;efficienza degli algoritmi da utilizzare.</p>
<p>La struttura dati  un metodo di organizzazione dei dati, quindi prescinde dai dati effettivamente contenuti. Ciascun <a href="http://it.wikipedia.org/wiki/Linguaggio_di_programmazione">linguaggio di programmazione</a> offre strumenti, pi o meno sofisticati, per definire strutture dati, ovvero aggregare dati di tipo omogeneo o eterogeneo. Questi strumenti sono tipicamente componibili.</p>
<p>Pi formalmente, i linguaggi forniscono un insieme predefinito di <a href="http://it.wikipedia.org/wiki/Tipo_di_dato">tipi di dato</a> elementari, e le strutture dati sono strumenti per costruire tipi di dati aggregati pi complessi.</p>
<p>L&#8217;operazione di costruire una variabile di un tipo di dato complesso  detta &#8220;istanziazione&#8221;, e pu avvenire sia durante la <a href="http://it.wikipedia.org/wiki/Compilatore">compilazione</a> del programma (compile time) sia durante la sua esecuzione (runtime).</p>
<p>Le strutture di dati si differenziano prima di tutto in base alle operazioni che si possono effettuare su di esse e alle prestazioni offerte. Questo permette di creare un&#8217;astrazione dall&#8217;implementazione, dando vita al concetto di <a href="http://it.wikipedia.org/wiki/Struttura_dati_astratta">Struttura dati astratta</a> o Abstract Data Structure (ADS).</p>
</blockquote>
<p>L&#8217;articolo  stato preso da <a href="http://it.wikipedia.org/">Wikipedia</a>, per leggere la parte mancante visitate la pagina <a href="http://it.wikipedia.org/wiki/Struttura_dati">Struttura dati</a> e seguite un pochino tutti i vari collegamenti per avere maggiori informazioni.</p>
<p><strong>A breve vedremo come implentare la nostra prima struttura dati astratta,</strong> una delle pi primitive e semplici ma forse anche una delle pi importanti che  ancora oggi alla base di molte applicazioni&#8230;</p>
<p>Parler dello <strong>Stack e la sua implementazione in Java 5.0</strong> in un ArrayList a dimensione fissa, successivamente tratter un Array di tipo circolare a dimensione fissa e infine dovrei trattare uno Stack immagazzinato tramite una lista di oggetti a dimensione variabile.</p>
<p><strong>Un piccolo avvertimento per chi fosse interessato</strong>: sono necessari <a href="http://java.sun.com/javase/downloads/index.jsp">Java Se JDK 5 o superiore</a> e possibilmente un ide di programmazione java, magari <a href="http://www.eclipse.org/downloads/">Eclipse 3.2 o superiore</a> (come il nuovo Europa). Per ora  tutto comincer tra breve a pubblicare le prime risorse <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/10/01/implementiamo-degli-algoritmi-e-strutture-di-dati-in-java-50/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Installare Java 1.6 e relativo Plugin per FireFox su Fedora 7</title>
		<link>http://www.traffyk.com/2007/07/04/installare-java-16-e-relativo-plugin-per-firefox-su-fedora-7/</link>
		<comments>http://www.traffyk.com/2007/07/04/installare-java-16-e-relativo-plugin-per-firefox-su-fedora-7/#comments</comments>
		<pubDate>Wed, 04 Jul 2007 15:38:25 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Computer - Internet]]></category>
		<category><![CDATA[FireFox]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/07/04/installare-java-16-e-relativo-plugin-per-firefox-su-fedora-7/</guid>
		<description><![CDATA[Fedora 7 una distro stupenda, ma alla quale manca un po di tutto e bisogna scervellarsi per poter usare per la prima volta le nostre applicazioni o strumenti preferiti. In questo caso vedremo come abilitare Java e installare il Plugin per FireFox. A questo indirizzo scaricate la versione Linux RPM (self-extracting file) di Java e [...]]]></description>
			<content:encoded><![CDATA[<p><img class="left" src='http://www.traffyk.com/blog/wp-content/uploads/2007/07/java-duke-guitar.png' alt='java-duke-guitar.png' />Fedora 7  una distro stupenda, ma alla quale manca un po di tutto e bisogna scervellarsi per poter usare per la prima volta le nostre applicazioni o strumenti preferiti. In questo caso vedremo come abilitare Java e installare il Plugin per FireFox.</p>
<p>A <a href="http://java.com/en/download/linux_manual.jsp?locale=en&#038;host=java.com">questo indirizzo</a> scaricate la versione <strong>Linux RPM (self-extracting file)</strong> di Java e posizionatela nella vostra home.</p>
<p>Dopodich aprite un terminale e dovreste trovarvi nella Home, se non ci siete spostatevi attraverso il comando:<br />
<code>cd /home/TuoNomeUtente</code><br />
Acquisite i permessi di root con &#8220;su&#8221;:<br />
<code># su<br />
Parola d'ordine: tuapassword<br />
</code><span id="more-742"></span><br />
Date questo comando:<br />
<code>]# sh ./jre-6u1-linux-i586-rpm.bin</code><br />
Dopo basta creare un link simbolico del plugin java nella cartella plugins di Firefox(o Mozilla):<br />
<code># ln -s /usr/java/jre1.6.0_01/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/mozilla/plugins</code><br />
Ora basta settare il PATH ed  tutto finito:<br />
<code># /usr/sbin/alternatives --install /usr/bin/java java \<br />
	/usr/java/jre1.6.0_01/bin/java 1601</code><br />
Verificate l&#8217;installazione di Java tramite:<br />
<code>]# java -version</code><br />
Dovrebbe restituirvi in output:<br />
<code>java version "1.6.0_01"<br />
Java(TM) SE Runtime Environment (build 1.6.0_01-b06)<br />
Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)</code></p>
<p>Riavviate FireFox, e provate a fare il <a href="http://java.com/en/download/help/testvm.xml">test di Java</a>.</p>
<p>Se doveste avere problemi evidentemente manca qualche libreria, si pu procedere in questo modo:<br />
Avviate FireFox in debug mode con <code># firefox --gtk-debug</code><br />
Ora andate all&#8217;indirizzo per il <a href="http://java.com/en/download/help/testvm.xml">test di Java</a> e visualizzate gli errori riportati nel terminale, dovrebbe esserci un&#8217;errore del tipo:<br />
<code>java.lang.UnsatisfiedLinkError: /usr/java/jre1.6.0/lib/i386/libdeploy.so: libstdc++.so.5: cannot open shared object file: No such file or directory</code><br />
Cercate cosa serve alla libreria:<br />
<code># yum whatprovides libstdc++.so.5</code><br />
Dovrebbe dare un output del genere:<br />
<code>compat-libstdc++-33.i386                 3.2.3-61               fedora<br />
Matched from:<br />
libstdc++.so.5<br />
</code><br />
Installate la libreia mancante con:<br />
<code># yum install compat-libstdc++-33.i386</code></p>
<p>Finito sul serio <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Almeno spero.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/07/04/installare-java-16-e-relativo-plugin-per-firefox-su-fedora-7/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Codice sorgente dello Snake 0.4 in Java 5.0 e How-to</title>
		<link>http://www.traffyk.com/2007/06/25/codice-sorgente-dello-snake-04-in-java-50/</link>
		<comments>http://www.traffyk.com/2007/06/25/codice-sorgente-dello-snake-04-in-java-50/#comments</comments>
		<pubDate>Mon, 25 Jun 2007 21:17:09 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[About Me]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[School]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programmazione]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2007/06/25/codice-sorgente-dello-snake-04-in-java-50/</guid>
		<description><![CDATA[Ho ripreso in mano i manuali di programmazione e non faccio altro che distrarmi come al solito, nelle mie vecchie cartelle ho ritrovato dei giochini in Java fatti da me un bel po di tempo fa. Due versioni dell&#8217;intramontabile Snake. Uno dove non si muore mai e uno nel classico stile di Snake. Avevo gia [...]]]></description>
			<content:encoded><![CDATA[<p>Ho ripreso in mano i manuali di programmazione e non faccio altro che distrarmi come al solito, nelle mie vecchie cartelle ho ritrovato dei giochini in Java fatti da me un bel po di tempo fa. Due versioni dell&#8217;intramontabile Snake. <a title="Lo snake piu pazzo che c e" href="http://www.traffyk.com/2006/11/16/lo-snake-piu-pazzo-che-ce/">Uno dove non si muore mai</a> e <a title="il vero snake appena finito di fare e corretto" href="http://www.traffyk.com/2006/11/18/il-vero-snake-appena-finito-di-fare-e-corretto/">uno nel classico stile di Snake</a>. Avevo gia pubblicato il codice sorgente su <a href="http://www.unitribu.net/java-codice-sorgente-dello-snake-04-di-traffykcom-vt271.html?highlight=">Unitribu</a> un forum universitario da me gestito ma che  stato accantonato da un bel po di tempo e ho deciso di rispondere all&#8217;unico commento ricevuto con una breve guida.</p>
<p>Per compilare il gioco visto che ho letto di alcune difficolt&agrave; vi descrivo la procedura passo passo da fare in <a title="Scarica Eclipse" href="http://www.eclipse.org/downloads/">Eclipse</a> 3.2.2.<br />
Una volta scaricato basta estrarlo e aprire la cartella, non necessita di installazione. Troverete all&#8217;interno della cartella Eclipse un file chiamato eclipse.exe facendo doppio click sopra potrete avviare (dopo aver selezionato una cartella per il workspace) Eclipse.<br />
Subito dopo andate su File &gt; New &gt; Project e scegliete Java Project poi cliccate su Next.<br />
Apparir&agrave; questa schermata:<br />
<img height="596" alt="eclipse1" src="http://www.traffyk.com/blog/wp-content/uploads/2007/06/eclipse1-1.png" width="508" /></p>
<p>Assicuratevi che in <strong>JRE</strong> sia selezionata almeno la versione <strong>1.5.0</strong> oppure come nel mio caso la versione 1.6.0. Poi cliccate sotto su <strong>Configure compilance&#8230;</strong></p>
<p><img height="273" alt="eclipse2" src="http://www.traffyk.com/blog/wp-content/uploads/2007/06/eclipse2.png" width="508" /></p>
<p>Il livello di compilazione deve essere impostato almeno su 5.0 altrimenti non si potranno usare le classi generiche previste da Java 5.0(e superiori). Date OK e alla richiesta successiva rispondete YES. Apparir&agrave; la finestra precedente date Next e poi Finish.</p>
<p><img height="226" alt="eclipse3" src="http://www.traffyk.com/blog/wp-content/uploads/2007/06/eclipse3.png" width="339" /></p>
<p>Ora vedrete nel Package Explorer la nostra bella cartella Giochi, cliccate su <strong>New Java Package</strong> (l&#8217;icona indicata nell&#8217;immagine).</p>
<p><img height="170" alt="eclipse4" src="http://www.traffyk.com/blog/wp-content/uploads/2007/06/eclipse4.png" width="245" /></p>
<p>Restate <strong>Giochi</strong> in source folder e date come nome del package <strong>snakeB_04</strong>. Questo sar&agrave; il risultato finale:</p>
<p><img height="55" alt="eclipse5" src="http://www.traffyk.com/blog/wp-content/uploads/2007/06/eclipse5.png" width="237" /></p>
<p>Cliccate ora su <strong>New Java Class</strong> e date un nome alla vostra classe.</p>
<p><img height="126" alt="eclipse6" src="http://www.traffyk.com/blog/wp-content/uploads/2007/06/eclipse6.png" width="314" /></p>
<p><img height="552" alt="eclipse7" src="http://www.traffyk.com/blog/wp-content/uploads/2007/06/eclipse7.png" width="439" /></p>
<p>Cliccate su Finish e si aprir&agrave; il vostro bel file Snake.java pronto da essere editato.</p>
<p><img height="125" alt="eclipse8" src="http://www.traffyk.com/blog/wp-content/uploads/2007/06/eclipse8.png" width="445" /></p>
<p>Cancellate tutto e incollate il codice sorgente contenuto in questo file <a href='http://www.traffyk.com/blog/wp-content/uploads/2007/06/snakejava.txt' title='snakejava.txt'>snake.java</a>. Poi dopo andate nel Package Explorer, cliccate con il destro su Snake.java e scorrete fino alla voce Run As &gt; Java Applet:</p>
<p><img height="421" alt="eclipse9" src="http://www.traffyk.com/blog/wp-content/uploads/2007/06/eclipse9.png" width="443" /></p>
<p>Vi verr&agrave; chiesto di salvare il programma, date Ok, il tempo di elaborare e codificare in Byte code il codice sorgente e verr&agrave; avviata l&#8217;applet che potrete testare.</p>
<p>Vi faccio presente che nell&#8217;applet ci sono molte imperfezioni e inoltre ho verificato la presenza di un bug abbastanza grave che fa crashare il gioco che non ho avuto tempo di sistemare, quindi se volete potete risolvere i problemi e rielaborare il tutto a vostro piacimento per&ograve; abbiate l&#8217;accortezza di inviarmi indietro la vostra versione modificata perch&egrave; cos&igrave; potr&ograve; imparare qualcosa da voi. Grazie.</p>
<p>THAT&#8217;S ALL!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.traffyk.com/blog/wp-content/uploads/2007/06/eclipse1.png"></a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2007/06/25/codice-sorgente-dello-snake-04-in-java-50/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Rilasciato il codice sorgente Java dello SnakeB fatto da me.</title>
		<link>http://www.traffyk.com/2006/12/02/rilasciato-il-codice-sorgente-java-dello-snakeb-fatto-da-me/</link>
		<comments>http://www.traffyk.com/2006/12/02/rilasciato-il-codice-sorgente-java-dello-snakeb-fatto-da-me/#comments</comments>
		<pubDate>Fri, 01 Dec 2006 22:01:46 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[videogiochi]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2006/12/02/rilasciato-il-codice-sorgente-java-dello-snakeb-fatto-da-me/</guid>
		<description><![CDATA[Ho pubblicato il codice sorgente del gioco da me fatto in precedenza e pubblicato su questo sito sul forum di Unitribu.net, nella sezione Informatica, cos possiamo raccogliere le discussioni in un forum. Ecco qui il link: java-codice-sorgente-dello-snake-04-di-traffyk]]></description>
			<content:encoded><![CDATA[<p>Ho pubblicato il codice sorgente del gioco da me fatto in precedenza e pubblicato su questo sito sul forum di <a title="Unitribu.net - La Tribu Degli Studenti Casinari" href="http://www.unitribu.net/">Unitribu.net</a>, nella sezione Informatica, cos possiamo raccogliere le discussioni in un forum.</p>
<p>Ecco qui il link:</p>
<p><a href="http://www.unitribu.net/java-codice-sorgente-dello-snake-04-di-traffykcom-vt271.html">java-codice-sorgente-dello-snake-04-di-traffyk </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2006/12/02/rilasciato-il-codice-sorgente-java-dello-snakeb-fatto-da-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Il vero Snake! Appena finito di fare e corretto</title>
		<link>http://www.traffyk.com/2006/11/18/il-vero-snake-appena-finito-di-fare-e-corretto/</link>
		<comments>http://www.traffyk.com/2006/11/18/il-vero-snake-appena-finito-di-fare-e-corretto/#comments</comments>
		<pubDate>Sat, 18 Nov 2006 16:22:29 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[videogiochi]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2006/11/18/il-vero-snake-appena-finito-di-fare-e-corretto/</guid>
		<description><![CDATA[SnakeB 0.3 &#8211; Aggiornamento dalla versione precedente e implementazione della MORTE Molti di voi mi hanno detto che al mio Snake non si moriva mai, che era una palla e che non c&#8217;era sfizio..Beh io a tutti vi rispondo che avevo sempre sognato un gioco cos davvero un potente antistress per me! Inoltre visto che [...]]]></description>
			<content:encoded><![CDATA[<p><strong>SnakeB 0.3 &#8211; Aggiornamento dalla versione precedente e  implementazione della MORTE <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </strong></p>
<p>Molti di voi mi hanno detto che al mio Snake non si moriva mai, che era una palla e che non c&#8217;era sfizio..Beh io a tutti vi rispondo che avevo sempre sognato un gioco cos <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />   davvero un potente antistress per me! Inoltre visto che non sto mai con le mani in mano vi ho accontentato tutti e ho creato il classico Snake(escluso il fatto che attraversa i muri che mi piace un casino).</p>
<p>Cosa c&#8217; di nuovo? Allora, non potete pi far scontrare il serpente con se stesso, ne fare retromarcia, inoltre  stato aggiunto il punteggio con possibilit  di memorizzare il Record. Appena possibile rilascer un&#8217;ulteriore versione che permetter  di salvare i migliori punteggi in un database. Inoltre potete scrivere il vostro nome nella finestra che compare.</p>
<p>&Egrave; stato inoltre risolto un antipaticissimo Bug, che faceva bloccare Snake che sfociava in un Loop infinito, c&#8217; un altro errore durante il reset in caso di sconfitta meno fastidioso che non sono ancora riuscito a capire in quali casi si crea. Quindi se vi capita ditemi un po in quale situazione o magari mi postate uno screenShot. Grazie RAGAZZI</p>
<p>Per giocare cliccate con il mouse nel riquadro qui sotto, poi muovete i tasti direzionali!</p>
<p><applet width="500" height="500" codebase="http://www.traffyk.com/blog/wp-content/applets" code="snakeB_03.Snake.class" ></applet></p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2006/11/18/il-vero-snake-appena-finito-di-fare-e-corretto/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Lo Snake pi pazzo che c&#8217;!</title>
		<link>http://www.traffyk.com/2006/11/16/lo-snake-piu-pazzo-che-ce/</link>
		<comments>http://www.traffyk.com/2006/11/16/lo-snake-piu-pazzo-che-ce/#comments</comments>
		<pubDate>Wed, 15 Nov 2006 23:28:45 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[videogiochi]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2006/11/16/lo-snake-piu-pazzo-che-ce/</guid>
		<description><![CDATA[SnakeB 0.2 &#8211; Il mio primo giochino cazzuto in Java Chi di voi non ha giocato al buon vecchio Snake?? Immagino tutti&#8230;ah ricordo ancora i megatornei dietro al banco del liceo con i cellulari allo Snake 1 e 2 della Nokia, hihihi quante ne abbiamo combinate(Catap t ricord record?? hiihihhi), naturalmente il sottoscritto li ha [...]]]></description>
			<content:encoded><![CDATA[<p><strong>SnakeB 0.2 &#8211; Il mio primo giochino cazzuto in Java <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </strong></p>
<p>Chi di voi non ha giocato al buon vecchio Snake?? Immagino tutti&#8230;ah ricordo ancora i megatornei dietro al banco del liceo con i cellulari allo Snake 1 e 2 della Nokia, hihihi quante ne abbiamo combinate(Catap  t ricord  record?? hiihihhi), naturalmente il sottoscritto li ha battuti tutti, e se si permettono di dire che non  vero abbuscano tutti quanti uno ad uno! ihihihi LOL. Ritorniamo a noi, questo Snake  un pochino particolare&#8230;Stufo di perdere ore ed ore per poi morire e ricominciare da capo ho sempre sognato di crearmene uno dove non si muore mai&#8230;.<strong>AVETE CAPITO BENE! QUI NON SI MUORE MAI!</strong> hihihih. Ma non  finita  qui&#8230;elenco brevemente le particolarit  di questo gioco:</p>
<ul>
<li>Snake attraversa i bordi e ricompare all&#8217;altra estremit ;</li>
<li>Snake si annoda su se stesso, fa le capriole, si attorciglia tutto quanto e non si affoga mai! hihihi;</li>
<li>Snake, e sentite bene questa, ha la RETROMARCIA! Basta invertire la direzione e il simpatico serpentello prima si contrae e poi va dall&#8217;altra parte!</li>
<li>Mantenendo il tasto premuto di direzione, il serpente raddoppia la velocit  di movimento! Nos Inside! (Come soprannominato da Pako! Grande!).</li>
</ul>
<p>Il gioco per funzionare necessita della Java Virtual Machine, aggiornata alla versione 1,5(o versione 5  la stessa cosa). Tecnicamente parlando questo gioco non si basa sulla classica(e molto dispendiosa) matrice NxN vista qualche post fa, ma su una lista a puntatori che memorizza tutte le posizioni dello Snake(e volendo si pu usare anche il classico ArrayList ma siccome lo sto studiando in Lasd, mi sono creato il TDA, tipo di dato astratto, da solo).</p>
<p>Per giocare cliccate con il mouse nel riquadro qui sotto, poi muovete i tasti direzionali!</p>
<p><applet width="500" height="500" code="snakeB.Snake.class" codebase="http://www.traffyk.com/blog/wp-content/applets"></applet></p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2006/11/16/lo-snake-piu-pazzo-che-ce/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>La mia Prima Applet Java 0.1</title>
		<link>http://www.traffyk.com/2006/10/11/la-mia-prima-applet-java-01/</link>
		<comments>http://www.traffyk.com/2006/10/11/la-mia-prima-applet-java-01/#comments</comments>
		<pubDate>Wed, 11 Oct 2006 03:16:37 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programmazione]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2006/10/11/la-mia-prima-applet-java-01/</guid>
		<description><![CDATA[Ho notato che dopo 5-6 caricamenti della mia Applet Firefox cominciava ad impazzire. Ve l&#8217;avevo detto ragazzi che non era opportuno fidarsi dei miei programmini . Nelle Applet la garbage collector se non erro non il massimo in quanto non distrugge da sola gli elementi all&#8217;uscita, in aiuto mi sono venuti i metodi void stop() [...]]]></description>
			<content:encoded><![CDATA[<p>Ho notato che dopo 5-6 caricamenti della mia Applet Firefox cominciava ad impazzire. Ve l&#8217;avevo detto ragazzi che non era opportuno fidarsi dei miei programmini <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  . Nelle Applet la garbage collector se non erro non  il massimo in quanto non distrugge da sola gli elementi all&#8217;uscita, in aiuto mi sono venuti i metodi void stop() e void destroy() per derefenziare la matrice creata e credo che ora la garbage collector faccia il resto perch ho ricaricato un sacco di volte la pagina  e Firefox con la JVM non si bloccano pi <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  .</p>
<p>Ps: l&#8217;applet sta nel post sotto, riaggiornata:<br />
<a title="La mia Prima Applet Java" href="http://www.traffyk.com/2006/10/10/la-mia-prima-applet-java/">La mia Prima Applet Java</a></p>
<p>BUONGIORNO GENTE.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2006/10/11/la-mia-prima-applet-java-01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La mia prima Applet Java</title>
		<link>http://www.traffyk.com/2006/10/10/la-mia-prima-applet-java/</link>
		<comments>http://www.traffyk.com/2006/10/10/la-mia-prima-applet-java/#comments</comments>
		<pubDate>Tue, 10 Oct 2006 02:18:42 +0000</pubDate>
		<dc:creator>Traffyk</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[programmazione]]></category>

		<guid isPermaLink="false">http://www.traffyk.com/2006/10/10/la-mia-prima-applet-java/</guid>
		<description><![CDATA[Finalmente dopo qualche nottata di scervellamento totale sono riuscito a creare una piccola Applet in Linguaggio Java(la mia prima applet in assoluto e tutta da solo!) che disegna una matrice booleana di 16&#215;16 elementi (con righe e colonne di dimensioni dinamiche a seconda della dimensione dell&#8217;applet) , e all&#8217;interno compare un quadrato pieno(anch&#8217;esso di dimensioni [...]]]></description>
			<content:encoded><![CDATA[<p>Finalmente dopo qualche nottata di scervellamento totale sono riuscito a creare una piccola Applet in Linguaggio Java(la mia prima applet in assoluto e tutta da solo!) che disegna una matrice booleana di 16&#215;16 elementi (con righe e colonne di dimensioni dinamiche a seconda della dimensione dell&#8217;applet) , e all&#8217;interno compare un quadrato pieno(anch&#8217;esso di dimensioni dinamiche) che pu essere spostato secondo gli assi X,Y a proprio piacimento, se va nei bordi si blocca e puo soltanto muoversi verso i restanti spazi. I movimenti possono essere effettuati tramite i 4 tasti direzionali, SOPRA SOTTO SINISTRA E DESTRA, altri tasti per ora non sono previsti anche se il procedimento sarebbe lo stesso..Per visualizzare l&#8217;Applet  richiesta la Java Virtual Machine.</p>
<p><applet width="400" height="400" codebase="http://www.traffyk.com/blog/wp-content/applets" code="Tavola.class"></applet></p>
<p>Visto? <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Premetto che ho superato l&#8217;esame di Java da circa 20 giorni, e trattava esclusivamente i concetti fondamentali di java quali Oggetti Classi Metodi ecc..ecc..in pratica i fondamenti. Non pubblico per ora il sorgente in quanto sicuramente il codice  ancora pieno zeppo di errori e di codice spartano(per giunta senza nessun commento) e non farei altro che farvi imitare il mio pessimo stile di programmazione, da questa base si pu partire per creare molti giochini simpatici, quali lo snake che io ho gia programmato ma lavorando su una collezione di punti e quindi man mano che il serpente avanzava superando un tot numero di punti(oggetti creati) il programma cominciava vistosamente ad andare a scatti fino a bloccarsi completamente, pertanto appena ho un po di tempo reimplementer lo snake con la matrice NxN di tipo boolean e credo che sicuramente risparmier molta memoria e lavori macchinosi&#8230; Vado a dormire..tenetevi sintonizzati su questo Blog(eh si&#8230;ormai lo  diventato sul serio un blog <img src='http://www.traffyk.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  speravo di non arrivarci&#8230;ma alla fine la struttura sta reggendo bene) per il mio primo vero giochino fatto in Java&#8230;.CON TANTO DI SORGENTE.</p>
<p>PS: per chi fosse interessato pu chiedermi il sorgente di questa applet tramite mail (la trovate nella pagina Info &#8211; Traffyk).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.traffyk.com/2006/10/10/la-mia-prima-applet-java/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

