如何将列内容作为列名JTable - MySQL

问题描述 投票:0回答:1

我有不同标准的相同数据,并希望在JTable上显示,有人可以帮助我吗?例如:我在“替代”表中有数据

ID = id01(3个数据)

第一个数据“id01 with criteria1 = 01”,

第二个数据“id01 with criteria2 = 02”。

我想在表格中显示ID列,criteria1,criteria02,其值为id01,01,02。水平出现

图片:

https://i.stack.imgur.com/tqdIf.jpg

java mysql swing
1个回答
0
投票

假设你从像List<String[]>开始

List<String[]> dataFromDatabase = new ArrayList<>();
dataFromDatabase.add(new String[] {"id01", "criteria1", "1"});
dataFromDatabase.add(new String[] {"id01", "criteria2", "2"});
dataFromDatabase.add(new String[] {"id01", "criteria3", "5"});
dataFromDatabase.add(new String[] {"id02", "criteria1", "6"});
dataFromDatabase.add(new String[] {"id02", "criteria2", "7"});
dataFromDatabase.add(new String[] {"id02", "criteria3", "10"});

您可以运行它并以Map中所需的格式存储数据:

Map<String, String[]> resultMap = new HashMap<>();
for(String[] dataArray : dataFromDatabase) {
  String id = dataArray[0];
  String criteria = dataArray[1];
  String value = dataArray[2];

  String[] result = resultMap.getOrDefault(id, new String[3]);

  if("criteria1".equals(criteria))
    result[0] = value;
  else if("criteria2".equals(criteria))
    result[1] = value;
  else if("criteria3".equals(criteria))
    result[2] = value;

  resultMap.put(id, result);
}

你最终得到这样的地图:

{ "id01", ["1","2","5"] }
{ "id02", ["6","7","10"] }

如果你提供更多细节,我可以改进答案。

© www.soinside.com 2019 - 2024. All rights reserved.