目前我有这个输入结果对象列表
public class Result{
private String id;
private String callerId;
}
这样地:
输入:
result1 ( id=1, callerId= A)
result2 ( id=2, callerId= A)
result3 ( id=3, callerId= B)
result4 ( id=4, callerId= C)
result5 ( id=5, callerId= A)
现在我想创建一个新列表,如果列表中的另一个结果具有重复的调用方 Id,则仅采用具有该调用方 Id 的第一个结果。例如:
输出:
result1 ( id=1, callerId= A)
result3 ( id=3, callerId= B)
result4 ( id=4, callerId= C)
我已经使它的工作使用如下图
resultsSet是列表;
Set<String> uniqueCaller = new HashSet<>();
resultsSet.forEach(
results -> {
uniqueCaller.add(results.getCallerReference());
}
);
Map<String, Integer> idWithAppearanceCount = new HashMap<>();
for(var caller : uniqueCaller) {
int appearanceCount = 0;
System.out.println("Start loop result");
for(var result : resultsSet){
if(result.getCallerReference().equalsIgnoreCase(caller)){
idWithAppearanceCount.put(result.getId(), appearanceCount++);
System.out.println("Appearance count" +appearanceCount);
System.out.println(idWithAppearanceCount);
}
}
}
idWithAppearanceCount.entrySet().removeIf( item -> item.getValue() > 0
);
但是我想知道用Java来做是否是更好的方法
你可以使用地图并做这样的事情。
Collection<Result> filterUnique(Collection<Result> collection) {
Map<String, Result> map = new HashMap<>();
for (Result result : collection) {
map.put(result.callerId, result);
}
return map.values();
}
请注意,这可能会更改订单。
问题内容: 当存在时,是否有可能获得全部列表?是否为此准备了电话,还是我必须编写一个foreach循环,如: 问题答案: Java 8及更高版本: 如果需要确保得到结果,则必须将最后一行更改为: Java 7及以下版本: Java 8之前的标准集合API不支持这种转换。您必须编写一个循环(或将其包装在您自己的“地图”函数中),除非您使用一些更高级的集合API /扩展。 (您的Java代码段中的行正
我有一份包含订单项目列表的订单 如果在这个列表中我有以下项目 我想计算订单所有者名称相同的值之和。 e、 g.如果所有者名称为“John”,则返回417.00,如果名称为“Doe”,则返回19.00。 我怎么能通过小溪Java呢?非常感谢
我想通过对象在Java中的属性来获取列表中对象的索引。 例: 现在,我想获取一个名为“Girish”的对象的索引。请务必让我知道JAVA中的代码。
我的查询对象是 但是 <代码>列表 将结果列表转换为classNameList。当我迭代单个值时,我的实体值在ClassName属性中为空。调用getter方法时不显示值。我的pojo看起来如下所示,当我打印pojo的值为空时,我的foreach正好迭代四次。 我的查询对象来自com.google.cloud.firestore包。和ApiFuture来自com.google.api.core.A
我有一个对象类型的列表。因为我有一个字符串属性idNum。现在我想通过传递idNum来获取列表中对象的索引。 我不知道如何给出对象列表。indexOf(//不知道如何在这里给出) 是否可以在不迭代列表的情况下这样做。我只想使用方法。
问题内容: 基本上,我有一个带有的表单,用于选择要使用的数据集(值分别为“ m”,“ f”和“ c”)。然后,我有一个字典/对象,其数据位于: 现在我需要/ / 但我不知道如何使用语法-我已经试过: 什么是正确的语法/方法? 问题答案: 由于您是通过变量引用属性,因此需要使用括号表示法。 …这与您传递字符串时使用的表示法相同。