gpt4 book ai didi

java - 比较两个数组列表以返回最新日期

转载 作者:行者123 更新时间:2023-12-01 06:42:48 25 4
gpt4 key购买 nike

我有两个数组列表,如下所示。

ArrayList<String> keys = new ArrayList<>();
ArrayList<String> values = new ArrayList<>();
keys.add("1","1","1","2","2","3");
values.add("2016-06-22 07:18:45", "2016-06-22 08:18:45", "2016-06-22 09:18:45",
"2016-06-22 03:18:45","2016-06-22 04:18:45","2016-06-22 01:18:45");

现在我需要这个功能

HashMaplatestValues(键、值);输出应如下所示,

["1"=>"2016-06-22 09:18:45","2"=>"2016-06-22 04:18:45", "3"=>"2016-06-22 01:18:45"]

返回该特定键的最新日期单个值。任何人都可以建议如何实现这一目标。

谢谢并提前!

最佳答案

我想这样就可以了。

public static void main(String[] args) {
ArrayList<String> keys = new ArrayList<>(Arrays.asList("1", "1", "1", "2", "2", "3"));
ArrayList<String> values = new ArrayList<>(Arrays.asList("2016-06-22 07:18:45", "2016-06-22 08:18:45", "2016-06-22 09:18:45",
"2016-06-22 03:18:45", "2016-06-22 04:18:45", "2016-06-22 01:18:45"));
HashMap<String, String> map = new HashMap<String, String>();

for (int i = 0; keys.size() == values.size() && i < keys.size(); i++) {
String key = keys.get(i);
String value = values.get(i);
if (!map.containsKey(key) || dateAsNo(value) > dateAsNo(map.get(key))) {
map.put(key, value);
}
}
System.out.println(map);
}

public static long dateAsNo(String v) {
return Long.parseLong(v.replaceAll("\\D", ""));
}

仅当所有日期都具有相同格式时才有效 yyyy-MM-dd hh:mm:ss

关于java - 比较两个数组列表以返回最新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37962971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com