如何从Java Hashmap将值设置为pojo类

时间:2018-05-20 14:27:50

标签: java spring pojo dto

我创建了一个下面的代码,它将读取excel表并将数据存储到hashmap中。

   public static void getValue()
    {
      Map<Integer, List<String>> getValues= new HashMap<Integer,List<String>>();
      String fileLocation = ".//clone1//Sample.xls";
      File f = new File(fileLocation);
      FileInputStream fis = new FileInputStream(f);
      Workbook book = new XSSFWorkbook(fis);
      Sheet sheet = book.getSheetAt(0);

        for (int i = 1; i <= sheet.getLastRowNum(); i++) 
        {
                Row row = sheet.getRow(i);
                List<String> datai = new ArrayList<String>();
        for (int j = 0; j < row.getLastCellNum(); j++) 
              {
                row.getCell(j, Row.CREATE_NULL_AS_BLANK);

                datai.add(row.getCell(j).getStringCellValue());
              }
                    getValues.put(i,datai);

        }
    }

HashMap的OUTPUT有些想法如下:

键:0 值:[&#34;汞&#34;&#34;汞&#34;]

键:1 值:[&#34;亚马逊&#34;&#34;点燃&#34;]

&#34; key&#34;表示excel表中的行数和&#34;值&#34;表示用户名和密码列,它们存储在Map中的List中。

根据输出,excel表有两个活动行和4个活动单元格值。

+示例POJO Class +

   public class DataSet
    {
     private username;
     private password;

     //getter and setters methods for username, and password
    }

我想将值应用于pojo类。哪个是从Map中实现设置pojo对象值的有效方法。

1 个答案:

答案 0 :(得分:0)

您可以使用一种流转换它:

List<DataSet> data = getValues.values().stream()
                .filter(l -> l.getSize() >= 2)
                .map(l -> new DataSet(l.get(0), l.get(1)))
                .collect(Collectors.toList());