The question was asked here: https://vaadin.com/forum/thread/18095407/how-to-create-a-grid-without-binder
However the vaadin's forum closed so i want to continue it here.
On Vaadin 14, Any recommendation on the best way to implement grid with dynamic varying number of columns. Using column Index (1,2,3...) is not a good choice for me. Let say I have a simple Json file (only 1 level: key-value) to map to a grid and this Json has an unknown list of properties.
which approach is better in term of performance ?:
[Option 1]
class Data {
    private Map<String, Object> values = new HashMap<>();
    
    public void set(String key, Object val) {
        values.put(key, val);
    }
    
    public Object get(String key) {
        return values.get(key);
    }
}
Grid<Data> myGrid = new Grid<>();[Option 2]
public class GridDynamicValueProvider implements ValueProvider<GridDynamicRow, Object> {
    private int columnIndex;
    public GridDynamicValueProvider(int columnIndex) {
        this.columnIndex = columnIndex;
    }
    @Override
    public Object apply(GridDynamicRow dynamicRow) {
        return dynamicRow.getValue(columnIndex);
    }
}
public class GridDynamicRow {
    private List<Object> values = new ArrayList<>();
    public void addValue(String value) {
        values.add(value);
    }
    public Object getValue(int columnIndex) {
        return values.get(columnIndex);
    }
} 
    