Как установить значения для Pojo класса из Java Hashmap - PullRequest
0 голосов
/ 20 мая 2018

Я создал приведенный ниже код, который будет читать таблицу Excel и сохранять данные в хэш-карте.

   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, некоторые думают, как показано ниже:

Ключ: 0 Значения:["mercury", "Mercury"]

Ключ: 1 Значения: ["Amazon", "Kindle"]

И "ключ" представляют количество строк в таблице Excel, а "Значения" представляютстолбцы имени пользователя и пароля, которые хранятся в Списке на карте.

В соответствии с выводом таблица Excel имеет две активные строки и 4 значения активной ячейки.

+ Образец класса POJO +

   public class DataSet
    {
     private username;
     private password;

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

Я хотел бы применить значения к классу pojo.и который является эффективным способом достижения установки значений объекта pojo из Map.

1 Ответ

0 голосов
/ 20 мая 2018

Вы можете преобразовать его, используя поток в одном роде:

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