如何使用地图项目类型填充

如何使用地图项目类型填充

本文介绍了如何使用地图项目类型填充 Vaadin Grid的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用 Map 项目填充我的 Vaadin 网格.那是因为我像这样从数据库中获取数据(也许这是主要问题):

I want to fill my Vaadin Grid with Map<String, Object> items.Thats because I get my data from database like this(maybe it's main problem):

List<Map<String, Object>> result = jdbcTemplate.queryForList("select * from db", new Object[]{});

现在假设我创建了我的测试列表并用一些地图填充它:

Now lets say that I create my test List and fill it with some maps:

List<Map<String, Object>> items = new ArrayList<>();
items.add(map);
items.add(map2);

我知道如何使用非动态数据模型来实现,例如:

I know how to do it with non dynamic data model, for example:

grid.addColumn(Person::getName).setCaption("Name");
grid.addColumn(Person::getAge).setCaption("Age");

但是我如何创建我的网格列以便它使用我的地图键?我现在拥有的:

But how can I create my Grid columns so it will use my keys from map?What I have by now:

Grid<Map<String, Object>> grid = new Grid<>();

items.get(0).keySet().forEach(key ->
    grid.addColumn(c -> c.get(key)));

grid.setItems(items);

它给了我输出:

b2/b3/b1

预期:

a1/a2/a3

b1/b2/b3

我不知道如何在列表中的每张地图中找到我的项目.还有它为什么不保留订单?欣赏每一个答案!

I have no clue how can I get to my item in every single map in list. And also why doesnt it keep an order?Appreciate every answer!

推荐答案

使用 LinkedHashMap 而不是 地图.

LinkedHashMap 保留插入顺序.

LinkedHashMap preserves the insertion order.

这篇关于如何使用地图项目类型填充 Vaadin Grid的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-12 20:28