Hm...: suche optimale Datenstruktur

Beitrag lesen

Hi Leute,

ich habe mal wieder ein problem mit meiner Datenstruktur.

Mein Algo. soll folgendes machen:

Input: A,B,... (sind Ereignisse, codiert als int)
Output: (A,B,w),(A,B,f),(A,f),(A,w), ... (sind DataNodes)

Derzeitige Datenstruktur ist:

  
package persistentGraph;  
  
import java.util.ArrayList;  
import java.util.LinkedList;  
import java.util.Set;  
import java.util.Stack;  
  
public class NodeData {  
  
	public int id;  
	//public LinkedList<NodeData> list;  
	public Stack stack;  
	public Set set;//LinkedList<Integer> list;  
	public Tripel tripel;  
	  
	public NodeData(int id, Tripel tripel)  
	{  
		this.id = id;  
		this.stack = new Stack();  
		//this.set = new Set();  
		//selbstabbildung  
		//this.list.add(id);  
		this.tripel = tripel;  
	}  
}  
  

Bei einem input von 10.000 Ereignissen erhalte ich 100.000.000 DataNodes. Der Datanode soll zudem speichern, welche anderen DataNodes er erreichen kann.

Bisher wollte ich das einfach über einen Root DataNode und entsprechende nachfolge DataNodes speichern. Hierbei habe ich u.a. ArrayList, linkedlist und Stack ausprobiert - kann es sein dass Stacks eine sehr lange laufzeit haben im vergleich zu arraylist? (beim einfügen)

Habt ihr einen Hinweis, wie ich diese Datenstruktur verbessern köbnnte? würde ich nur mit den 10.000 ereignissen arbeiten, anstatt die 100.000.000 datanodes aufzubauen, wäre das ein großer performenc gewinn, allerdings hat jeder datanode ein individuelles tripel, dass ich dann auf andere art speichern müsste. ich hab mir auch überlegt die datanodes als xml zu speichern, damit der arbeitsspeicher nicht zusehr belastet wird, aber das kostet wahrscheinlich wieder viel laufzeit.