java - 循环遍历可观察列表

标签 java javafx observablelist

我有一个 javafx 表 (carTable),其中包含单个列:

+-------------+
+ Brand        +
+-------------+

此列是可观察列表 (carOL) 的一部分。该 OL 还包含 2 个列表(“日期”和“价格”)。对于每个品牌,可以从互联网下载特定时间范围内的价格。

例如:

Audi
   2014-01-01
   2014-01-02
   55000
   90000
BMW
   2014-01-01
   2014-01-02
   85000
   70000

我现在想使用所有这些数据创建一个折线图,以比较不同品牌之间的价格发展。

到目前为止我所想到的:

@FXML private CategoryAxis xAxis = new CategoryAxis();
@FXML private NumberAxis yAxis = new NumberAxis();
@FXML private LineChart<String, Number> lc = new LineChart<>(xAxis,yAxis);

Series<String, Number> series = new Series<>();
List<String> d = new ArrayList<String>();
List<Double> p = new ArrayList<Double>();
int id = 0;

for (Car c : carOL) {
    d = c.getDate(); // returns array list with dates from OL
    p = c.getPrice(); // returns array list with prices from OL
    series.getData().add(new XYChart.Data<>(d.get(id), p.get(id)));
    id++;
    }

lc.getData().add(series);

这当然并不能完全返回我想要的。我不知何故需要能够为每个品牌创建单独的“系列”。

有人可以帮忙吗?

最佳答案

如果日期数组中的项目顺序与价格数组中的项目顺序相对应,则需要:

for (Car c : carOL) { 
  d = c.getDate(); // returns array list with dates from OL 
  p = c.getPrice(); // returns array list with prices from OL 
  for (String dates : d.getDate()) { 
    series.getData().add(new XYChart.Data<>(dates, p.get(id))); 
    id++; 
  } 
} 

浏览所有日期并添加适当的价格。

关于java - 循环遍历可观察列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24192674/

相关文章:

java - Android webView不显示地理位置

database - 从 TableView 中获取数据并插入数据库

java - 计算出 QuadCurveTo 的参数

JavaFX ToggleButton 进入和退出无限循环

java - 使用地理工具中的纬度和经度值在 map 上绘制一个点

c# - 在 C# 对象上实现 INotifyPropertyChanged 后获取 "Key cannot be null"

java - 可观察列表转换/转换

java - 在 if 语句之外使用变量

java - 从数组中的 jsoup 获取独立标签的文本

java - 网络服务如何工作