用java对一个list时间里面同一天的时间进行去重,并且返回的list《时间》都是不同一天的时间
时间: 2024-05-03 17:19:57 浏览: 13
以下是一个可能的解决方案:
```
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Main {
public static List<LocalDateTime> removeDuplicates(List<LocalDateTime> dateTimeList) {
Set<LocalDate> dateSet = new HashSet<>();
List<LocalDateTime> result = new ArrayList<>();
for (LocalDateTime dateTime : dateTimeList) {
LocalDate date = dateTime.toLocalDate();
if (!dateSet.contains(date)) {
dateSet.add(date);
result.add(LocalDateTime.of(date, LocalTime.MIN));
}
}
return result;
}
public static void main(String[] args) {
List<LocalDateTime> dateTimeList = new ArrayList<>();
dateTimeList.add(LocalDateTime.of(2021, 4, 1, 10, 30));
dateTimeList.add(LocalDateTime.of(2021, 4, 2, 14, 0));
dateTimeList.add(LocalDateTime.of(2021, 4, 2, 16, 30));
dateTimeList.add(LocalDateTime.of(2021, 4, 3, 9, 0));
dateTimeList.add(LocalDateTime.of(2021, 4, 3, 11, 30));
dateTimeList.add(LocalDateTime.of(2021, 4, 4, 13, 0));
List<LocalDateTime> result = removeDuplicates(dateTimeList);
for (LocalDateTime dateTime : result) {
System.out.println(dateTime);
}
}
}
```
这个程序通过HashSet来记录已经出现过的日期,然后对于每一个日期,只有第一次出现的时候才会加入结果列表中。如果多个时间都在同一天,只有第一个时间被保留在结果列表中。最后返回的结果就是不同日期的LocalDateTime列表。