【发布时间】:2017-09-03 19:17:36
【问题描述】:
我有两个列表 results 和 dateObj。在dateObj 列表中,我添加了两个日期之间的月份,另一个列表包含月份列表,因此我应该从dateObj 列表中删除重复的月份。
这是我的尝试:
public void nbreRep(ActionEvent e) {
List<Object[]> results;
List<String> dateObj = new ArrayList<String>();
Date date_de;
Date date_a;
Calendar beginCalendar = Calendar.getInstance();
Calendar finishCalendar = Calendar.getInstance();
beginCalendar.setTime(date_de);
finishCalendar.setTime(date_a);
while (beginCalendar.before(finishCalendar)) {
Date datediff = beginCalendar.getTime();
beginCalendar.add(Calendar.MONTH, 1);
fC = Calendar.getInstance();
Calendar fCa = Calendar.getInstance();
fC.setTime(datediff);
fCa.setTime(datediff);
int year = fCa.get(Calendar.YEAR);
String d = fC.getDisplayName(fC.MONTH, fC.LONG, Locale.FRANCE) + " " + year;
Object[] obj = new Object[2];
obj[0] = d;
obj[1] = 1;
dateObj.add(obj);
}
for (int i = 0; i < dateObj.size(); i++) {
System.out.println("index " + i + "value " + dateObj.get(i));
}
Query query = entityManager.createQuery("select r.dateheurerep, count(r) as nbrr "
+ " from Reparation r "
+ " where r.dateheurerep >= :date_de "
+ " and r.dateheurerep <= :date_a "
+ " GROUP BY YEAR(r.dateheurerep), MONTH(r.dateheurerep)");
query.setParameter("date_de", date_de);
query.setParameter("date_a", date_a);
results = query.getResultList();
results.addAll(dateObj);
}
【问题讨论】:
-
您的代码有问题:不可能将二元素对象数组放入
List<String>。请发布真实代码,并尝试解释此代码应该做什么。要打印数组的内容,请使用Arrays.toString(...)- 你不能使用数组的名称,因为数组没有toString方法。 -
我强烈建议不要使用旧的
java.util.Date和java.util.Calendar类。您应该改用java.time包中的适当类。 -
您应该很少遇到需要在代码中键入单词“Object”的情况。如果你这样做了,停下来问问你是否在使用强类型语言做错了什么。
-
另外,你在这里问了两个问题。在同一个问题中提出多个不相关的问题是不好的形式。如果您需要两个问题的答案,请将其分成两个不同的问题。
-
@RealSkeptic 无法将二元素对象数组放入 List
,我该怎么办?
标签: java list jpa collections