如何使用具有新数据的元素替换arraylist中的现有元素

时间:2018-06-04 15:50:40

标签: java jsf primefaces

我必须在JSF Primefaces Java中获取一个数据表,其中填充了来自数据库的数据,如果没有足够的数据,我必须用空或新的对象/行填充它。

因此,为了清楚上面这一点,数据表中的每一行代表当月的一天。数据库中已有的数据是该月份每个日期的数据。

所以,如果我只有6月第二天的数据。我需要在我的数据表中在一个月的第一天创建一个新的空对象,第二天必须有来自数据库的数据。

所以我试图这样做,但我的结果是数据库中的数据来自数据表上方的数据表堆栈。从那以后它从本月的第一天开始。

所以我想在每个月的特定日期设置数据库数据。

这是我的代码:

 LocalDate date = LocalDate.now().withDayOfMonth(1);
        dayDataList = dayDataTaskService.findAllDataForUser("Wim",Date.valueOf(date));
        LocalDate end = date.plusMonths(1);

        if (dayDataList == null || dayDataList.isEmpty()) {
            List<DayData> dayDataList = new ArrayList<>();
            while (date.isBefore(end)) {
                DayData dat = new DayData();
                dat.setRamDate(Date.valueOf(date));
                dayDataList.add(dat);

                date = date.plusDays(1);

            }


        } else {
            while (date.isBefore(end)) {
                int day = date.getDayOfMonth();
                if(dayDataList.contains(Date.valueOf(date)))
                {
                    for(DayData d : dayDataList)
                    {

                        if(d.getRamDate().equals(Date.valueOf(date)))
                        {
                            System.out.println(date + "-" + d.getRamDate());
                            dayDataList.set(5,d);

                            date.plusDays(1);
                        }
                    }

                }else{


                            dayDataList.add(new DayData(Date.valueOf(date)));
                            date = date.plusDays(1);


                }

我的结果是:

Result from code above

因此,您可以看到第一条记录是该月的第一条记录,并且是来自数据库的数据。第二个记录也是本月的第一个没有数据的记录。所以我需要将数据表中的行替换为数据表中特定日期的数据库中的行

0 个答案:

没有答案