我试图在我的ArrayList“list1”中找到公共元素
List<LocalDate> list1 = new ArrayList<> ();
for (LocalDate d = dateFrom; !d.isAfter(dateTo); d = d.plusDays(1)) {
dates.add(d);
它包含“dateFrom”和“dateTo”之间的所有日期以及我的列表“list2”
List<LocalDate> list2 = Arrays.asList(dateTime);
其中dateTime是一个变量,它仅存储具有以下结构的文本文件中的日期:
1946-01-12;07:00:00;-1.3;G
1946-01-12;13:00:00;0.3;G
1946-01-12;18:00:00;-2.8;G
1946-01-13;07:00:00;-6.2;G
1946-01-13;13:00:00;-4.7;G
1946-01-13;18:00:00;-4.3;G
我尝试使用list2.retainall(list1);
来查找清单2中也在清单1中的所有日期,但我认为我的问题是清单2不是一个ArrayList。我该怎么解决呢?
private static List<WeatherDataHandler> weatherData = new ArrayList<>();
public void loadData(String filePath) throws IOException {
//Read all data
List<String> fileData = Files.readAllLines(Paths.get("filePath"));
Map<String, Long> frequencyMap = new LinkedHashMap<>();
LocalDate dateFrom = LocalDate.of(1946,01,12);
LocalDate dateTo = LocalDate.of(1946, 01, 14);
List<LocalDate> list1 = new ArrayList<> ();
for (LocalDate d = dateFrom; !d.isAfter(dateTo); d = d.plusDays(1)) {
dates.add(d);
}
for(String str : fileData) {
List<String> parsed = parseData(str);
LocalDate dateTime = LocalDate.parse(parsed.get(0));
LocalTime Time = LocalTime.parse(parsed.get(1));
double temperature = Double.parseDouble(parsed.get(2));
String tag = parsed.get(3);
WeatherDataHandler weather = new WeatherDataHandler(dateTime, Time, temperature, tag);
weatherData.add(weather);
List<LocalDate> list2 = Arrays.asList(dateTime);
list2.retainAll(list1);
String strDate = list2.toString();
frequencyMap.compute(strDate,
(date, count) -> count == null ? 1 : count + 1);
}
for (Map.Entry<String, Long> entry : frequencyMap
.entrySet()) {
if (entry.getValue() < 24){
System.out.println(
entry.getKey() + ": " + (24-entry.getValue()));
}}
您可以按照以下方法进行操作:
List<LocalDate> commonList = new ArrayList<LocalDate>();
for (LocalDate date : list1) {
if(list2.contains(date)) {
commonList.add(date);
}
}
System.out.println("Common elements: " + commonList)
[更新]
替换
if (entry.getValue() < 24)
与
if (entry.getValue() < 24 && !entry.getKey().equals("[]"))
在代码中删除类似[]:23
的内容。
问题内容: 如何以简洁明了的方式找出两个列表中的第一个公共元素(在本例中为“ 2”)?任何列表都可以为空,也可以没有公共元素-在这种情况下,没有一个很好。 我需要它来向新手展示python,所以越简单越好。 UPD:顺序对于我的目的并不重要,但让我们假设我正在寻找x中的第一个元素,该元素也出现在y中。 问题答案: 这应该很简单 几乎和它一样有效 (要获得更有效的解决方案,请检查Ashwini Ch
代码不止一次返回0和公共数字。我想让它返回一个数组与公共数字一次!那么,如何返回一个数组,数组中的数字对两个数组都是通用的。我想返回{2,7,4}-类似这样的东西。当我试图返回数组时,我总是出现越界异常。谢谢,巴里
本文向大家介绍在C ++中的两个双链表中查找公共节点数,包括了在C ++中的两个双链表中查找公共节点数的使用技巧和注意事项,需要的朋友参考一下 假设我们有两个双向链表。我们必须在两个双向链表中都找到公共节点的总数。因此,如果两个列表像[15、16、10、9、7、17]和[15、16、40、6、9],则有三个公共节点。 使用两个嵌套循环遍历两个列表,直到列表的末尾,对于列表中的每个节点,检查它是否与
假设我有两个这种格式的数据帧(称它们为和): 我希望获得所有行的数据帧,这些行在和中有一个公共的。(即,如果同时位于和中,则在输出数据帧中包括这两行) 我能想到很多方法来解决这个问题,但它们都让我觉得笨拙。例如,我们可以在每个数据帧中找到所有唯一的s,创建每个数据帧的集合,找到它们的交集,用结果集过滤两个数据帧,并连接两个过滤后的数据帧。 也许这是最好的方法,但我知道熊猫很聪明。有没有更简单的方法
问题内容: 我有两个三个整数的对象。我想找到一种方法来返回两个列表的共同元素。有谁知道我如何实现这一目标? 问题答案: 使用。 如果要避免更改受到影响listA,则需要创建一个新的更改。
我遇到了一个问题语句,要在给定的两个子字符串之间找到所有公共子字符串这样一种方式,在每种情况下都必须打印最长的子字符串。问题声明如下: 编写一个程序来查找两个给定字符串之间的公共子字符串。但不包括包含在较长公共子字符串中的子字符串。 null 在这种情况下,您不必使用字符串实用程序方法,如:contains、indexOf、StringTokenizer、split和replace。 我的算法是这