URL: https://www.overclockers.at/coding-stuff/java-get-part-of-table_251224/page_1 - zur Vollversion wechseln!
ich arbeite gerade an einem programm in dem ein thread eine Table mit daten befüllt und die andere die darin gespeicherten daten anzeigt.
der thread der die daten anzeigt holt sich eine kopie der Table und zeigt dann einen bestimmten bereich der werte darin an:
gibt es eine möglichkeit einen unterbereich einer Table zu kopieren (oder das sonst wie besser zu machen)?Code: JAVATable data = data_.copy(); //update data range to display data_min_ = Math.round(range_data_.getLowValue() * (data.getRowCount() - 1)); data_max_ = Math.round(range_data_.getHighValue() * (data.getRowCount() - 1)); for (int i = 0; i < NUM_CHANNELS; i++) { float[] data_x = Arrays.copyOfRange(data.getFloatColumn(2), data_min_, data_max_); float[] data_y = Arrays.copyOfRange(data.getFloatColumn(i + 3), data_min_, data_max_); charts_[i].setData(data_x, data_y);
Benuetzt du da die guava libs oder was ist das fuer eine Table?
http://processing.github.io/process...data/Table.html
Benoetigst du die Table-Library, bzw. kriegst du deine Daten wirklich aus einem CSV oder musst du wieder als CSV speichern? Dann lass es so -> die Table Klasse ist offenbar schon etwas aelter und unterstuetzt keine Java 8 - Streams. Damit koennte man sauber via collector und predicate selektieren.
Aber selbst dann wissen wir nicht, welches Chart du da benuetzt und ob es collections unterstuetzt oder ob man dann erst wieder in ein Array konvertieren muesste.
Weiters steht in der Javadoc nirgends ob die Table.copy-Methode thread safe ist. Da wuerd ich eventuell einen Lock einbauen.
FALLS du die Table-Klasse nicht unbedingt brauchst und der Chart Collections unterstuetzt, kann man die Sache eleganter loesen.
die daten sammle ich selbst, muss also nicht unbedingt eine processing.data.Table sein. CSV export muss aber sein. ich benutze diese chart library die leider nur arrays oder eine liste von 2-dimensionalen vektoren akzeptiert. aktuell hole ich mir arrays aus der Table.
danke für den tipp mit dem lock, das schaue ich mir an.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025