Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Java Hashmap设置pojo类的值_Java_Spring_Pojo_Dto - Fatal编程技术网

如何从Java Hashmap设置pojo类的值

如何从Java Hashmap设置pojo类的值,java,spring,pojo,dto,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

我已经创建了下面的代码,它将读取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);

        }
    }

我想将这些值应用于pojo类。这是实现从映射设置pojo对象值的有效方法。

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

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

这真的很有帮助。但我还没有开始使用java8。你能给我一个java7的想法吗。还有什么方法不使用基于索引的方法来获取值,并将对象添加到列表中。您有一个列表。您必须按索引访问列表中的项。您可以使用foreach循环来避免索引,但非常感谢您的回复。让我了解一下列表中是否有更多的值,有时也可能是空的。每当我有空单元格时,我就尝试从索引中获取,它被认为是空的,如果我开始使用索引,则所有值都不匹配。然后,您想将初始数据结构更改为
Map
。它看起来像:
{0->{userName:A,passWord:B}
。您可以避免索引,只需查找值的名称。您可以将初始数据结构更改为我建议的数据结构(
Map
),然后就可以实现您想要的。
List<DataSet> data = getValues.values().stream()
                .filter(l -> l.getSize() >= 2)
                .map(l -> new DataSet(l.get(0), l.get(1)))
                .collect(Collectors.toList());