gpt4 book ai didi

rx-java - 如何在 rx java 中分组并返回列表

转载 作者:太空狗 更新时间:2023-10-29 15:58:55 25 4
gpt4 key购买 nike

我正在尝试根据 Rxjava 中的某些条件创建组列表。

以下是我的回复:

{  
"dates":[
{
"date":18,
"value":"1"
},
{
"date":18,
"value":"2"
},
{
"date":18,
"value":"3"
},
{
"date":19,
"value":"1"
},
{
"date":19,
"value":"2"
},
{
"date":19,
"value":"3"
},
{
"date":19,
"value":"4"
}
]
}

如何按值 18 [值 1,值 2,值 3,最高值 = 3,最低值 = 1] 进行分组19[值 1,值 2,值 3,值 4,最高值 = 4,最低值 = 1] 使用 Rxjava

注意:我可以使用 for 循环创建,但响应将从服务器获取,因为它返回可观察到的使用 rx java 功能的想法。

任何帮助将不胜感激。

谢谢,山西

最佳答案

查看group by功能。

下面是任何好奇的人的例子:

class DateModel implements Comparable<DateModel>{
Integer date;
Integer value;

public DateModel(int date, int value){
this.date = date;
this.value = value;
}

@Override
public int compareTo(DateModel o) {
return value.compareTo(o.value);
}
}

然后如果我们必须聚合这些模型对象的列表:

// example list
List<DateModel> dateList = Arrays.asList(
new DateModel(18,1),
new DateModel(18,2),
new DateModel(18,3),
new DateModel(19,1),
new DateModel(19,2),
new DateModel(19,3),
new DateModel(19,4)
);

// the following observable will give you an emission for every grouping
// for the example data above, you should get two emissions (group 18 and 19)
Observable<PriorityQueue<DateModel>> observable =
Observable.from(dateList)
.groupBy(dateModel -> dateModel.date)
.flatMap(groups -> groups.collect(PriorityQueue::new, PriorityQueue::add));

PriorityQueue 只是用于收集的结构的一个示例。如果您从队列中弹出,您将获得 18-1、18-2、18-3 等(按照您要求的顺序)。您可以使用不同的结构来仅查找最大值和最小值。

关于rx-java - 如何在 rx java 中分组并返回列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46291125/

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