基于JTable创建HashMap [英] create the HashMap based on JTable

查看:244
本文介绍了基于JTable创建HashMap的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

JTable 以下内容

  Col1 | Col2 
A | 1
A | 2
A | 3
B | 5
B | 1
C | 5
C | 4
C | 2

基于此表,我需要创建一个 HashMap数字:第1列指键,第2列指数据。

下面我提供了我的代码片段。问题是:有没有更快的方法来创建所提到的HashMap?

  HashMap numbers = new HashMap< String,List< String> ;>(); 

for(int i = 0; i< tbNumbers.getRowCount(); i ++)
{
col1 = mdNumbers.getValueAt(i,0).toString();
col2Array = new ArrayList< String>();

for(int j = 0; j {
if(mdNumbers.getValueAt(j,0).toString()== col1)
{
col2Array.add(mdNumbers.getValueAt(j,1).toString());
}
}

numbers.put(col1,col2Array);



$ div $解析方案

是的,可以让HashMap做这项工作,而不是使用嵌套循环。

  HashMap numbers = new HashMap< String,List< String> >(); 
List col2Array = null;
for(int i = 0; i< tbNumbers.getRowCount(); i ++)
{
col1 = mdNumbers.getValueAt(i,0).toString();
col2Array = numbers.get(col1);
if(col2Array == null){
col2Array = new ArrayList< String>();
numbers.put(col1,col2Array);
}
col2Array.add(mdNumbers.getValueAt(i,1).toString());
}


There is JTable with the following content

Col1  |  Col2
A     |  1
A     |  2
A     |  3
B     |  5
B     |  1
C     |  5
C     |  4
C     |  2

Based on this table, I need to create a HashMap numbers: column 1 refers to keys and column 2 refers to data.

Below I provide my code snippet. The question is: is there any quicker way to create the mentioned HashMap?

HashMap numbers = new HashMap<String, List<String>>();

for (int i=0; i<tbNumbers.getRowCount(); i++) 
{
    col1 = mdNumbers.getValueAt(i,0).toString();
    col2Array = new ArrayList<String>();

    for (int j=0; j<tbNumbers.getRowCount(); j++) 
    {
      if (mdNumbers.getValueAt(j,0).toString() == col1)
      {
        col2Array.add(mdNumbers.getValueAt(j,1).toString());
      }
    }

    numbers.put(col1, col2Array);

}

解决方案

Yes, maybe let the HashMap do the work instead of using a nested loop.

HashMap numbers = new HashMap<String, List<String>>();
List col2Array=null;
for (int i=0; i<tbNumbers.getRowCount(); i++) 
{
    col1 = mdNumbers.getValueAt(i,0).toString();
    col2Array = numbers.get(col1);
    if(col2Array==null){
        col2Array=new ArrayList<String>();
        numbers.put(col1,col2Array);
   }
    col2Array.add(mdNumbers.getValueAt(i,1).toString());
}

这篇关于基于JTable创建HashMap的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆