gpt4 book ai didi

java - 在 List 中,如何保留最新条目并删除具有相同字段的先前条目?
转载 作者:行者123 更新时间:2023-12-01 17:45:21 24 4
gpt4 key购买 nike

我有一个列表,其中包含各种 CallLog 对象的记录。每个 CallLog 都是不同的,当我将其传递到 ListView 时,每个日志都会正确显示在我的屏幕上。然而,我想要做的是删除具有相同 RemoteAddress 属性的日志(即给我打电话或接到我电话的人只应在我的 ListView 中出现一次)。这是因为我将在其正下方显示该远程联系人的所有日志详细信息。

如何创建一个方法(或类),它可以过滤掉我的列表以仅保留唯一的远程地址?下面是我如何从核心检索此日志列表。它具有 CallLog[] 的形式:

// Filter this
List<CallLog> mLogs = Arrays.asList(LinphoneManager.getCore().getCallLogs());

最佳答案

List<CallLog> mLogs = Stream.<CallLog>of(LinphoneManager.getCore().getCallLogs())
.collect(ArrayList::new,
(a, l) -> { if (!a.stream().anyMatch(o -> ((CallLog) o).remoteaddress.equals(l.remoteaddress))) a.add(l); },
(a, b) -> { a.addAll(b); })

你以前尝试过类似的事情吗?您可以使用 set 方法而不是 add 。

关于java - 在 List<Object> 中,如何保留最新条目并删除具有相同字段的先前条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60874337/

24 4 0