2016-04-28 12 views
0

Ich möchte N Elemente miteinander verknüpfen. Das bedeutet, dass Element 1 eine bestimmte Wertbeziehung zu Element 1, Element 2, Element 3 ..... Element N hat. Ähnlich verhält sich Element 2 zu Element 1, Element 2, Element 3 ... und so weiter . Auch ich möchte alle diese Werte in einer Datei (en) speichern und regelmäßig ändern. Ich bevorzuge die Kodierung in Java.Wie kann ich N Elemente miteinander verknüpfen?

Was kann die perfekte Lösung für dieses Problem sein?

Bitte helfen Sie mir, ich bin geschlagen.

+0

eine verknüpfte Liste? –

+0

Wie kann ein Element eine Beziehung zu sich selbst haben? –

+0

Möchten Sie eine Art von Fremdschlüssel (SQL) -Konzept in Java implementieren? Verknüpfte Liste können Sie diese Funktionalität geben. Außerdem scheint es mir eine Schulaufgabe zu sein. Zeigen Sie uns, was Sie getan haben, und wir wären in einer besseren Position, um Ihnen zu helfen. Erwarten Sie nicht, dass wir Ihnen eine "perfekte Lösung" geben. – Aakash

Antwort

0

Sie haben ein Raster. Jedes Element hat einen Beziehungswert mit jedem anderen Element, dh es gibt (Anzahl der Elemente)^2 Beziehungswerte.

Ich würde ein Array verwenden. Dann serialisieren Sie das Array, um es als Datei zu speichern, deserialisieren Sie es, um es zu laden, bearbeiten Sie es und dann serialisieren Sie es erneut.

Hier einig Java-Code zu einer Datei zu speichern und zurück:

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.ObjectInputStream; 
import java.io.ObjectOutputStream; 
import java.util.Arrays; 

public class Grid { 

    public static void main(String[] args) throws Exception { 

     // your data grid 
     int num_elements=10; 
     double[][] grid=new double[num_elements][num_elements]; 

     // populate the grid 
     // note grid[m][n] holds the value for the relationship 
     // between element m and element n 
     grid[0][0]=1.0; 
     grid[0][1]=0.5; 
     // etc... 

     System.out.println(Arrays.deepToString(grid)); 

     // save the grid 
     write_object(grid, "grid.data"); 

     // clear the grid (eg happens when you rerun your program) 
     grid=null; 

     // load the grid 
     grid=(double[][])read_object("grid.data"); 
     System.out.println(Arrays.deepToString(grid)); 

     // do some changes 
     grid[0][0]=2.0; 
     grid[0][1]=1.5; 
     // etc... 

     // save the grid (again) 
     write_object(grid, "grid.data"); 

     // and so on 

    } 


    public static void write_object(Object no, String nfilename) { 
     try { 
      File f=new File(nfilename); 
      if (f.exists()) 
       f.delete(); 
      FileOutputStream fos=new FileOutputStream(nfilename); 
      ObjectOutputStream oos = new ObjectOutputStream(fos); 
      oos.writeObject(no); 
      oos.close(); 
     } 
     catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    public static Object read_object(String nfilename) { 
     try { 
      FileInputStream fis=new FileInputStream(nfilename); 
      ObjectInputStream ois = new ObjectInputStream(fis); 
      Object o=ois.readObject(); 
      ois.close(); 
      return o; 
     } 
     catch (IOException | ClassNotFoundException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

} 
Verwandte Themen