通常我们需要使用addValue手动将值添加到数据集,如下所示,
DefaultCategoryDataset dataset =new DefaultCategoryDataset( );
dataset.addValue( 1.0 , fiat , speed );
dataset.addValue( 3.0 , fiat , userrating );
dataset.addValue( 5.0 , fiat , millage );
dataset.addValue( 5.0 , fiat , safety; )
是否有其他方法可以借助arraylist或hashmap创建数据集
最佳答案
有一些示例:Examples
或者,如果您要使用列表自动添加值,请执行以下操作:
static class Customer{
String name;
int salary;
int age;
public Customer(String name, int salary, int age) {
this.name = name;
this.salary = salary;
this.age = age;
}
}
public static void main(String[] args) {
ArrayList<Customer> data = new ArrayList<Customer>(){{add(new Customer("x",100,20));add(
new Customer("y",200,30));add(new Customer("z",300,40));}};
for(Customer c:data){
System.out.println(c.name+" _ "+c.salary+" - "+c.age);
}
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for(Customer c :data){
dataset.addValue(c.salary, "low", "");
}
//Cont'd other JFreechart codes ...
}
如果您使用Java,并尝试执行以下操作:
DefaultCategoryDataset list = new Arraylist<>()
这是不可能的。因为DefaultCategoryDataset(DefaultCategoryDataset)是从AbstracDataset扩展而来的,并且实现了Serializable(java.io.Serializable)。所以无法使用arraylist和hashmap。protected AbstractDataset() {
this.group = new DatasetGroup();
this.listenerList = new EventListenerList();
this.notify = true;
}
关于java - 我可以从 map 或数组列表的jfree中将数据设置为DefaultCategoryDataset吗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46336948/