我正在制作出租车预订申请...我在司机方面发送推送通知...我想向已完成最低工作的司机发送推送通知..... 我有两个列表......一个是从数据库获取Jobs列,另一个是从数据库获取ObjectIds,ObjectIds在String中,而Jobs在整数....
我已使用Collections.sort(jobs)按升序排序作业列表(整数);
但现在我想根据作业列表...
对objectIds列表进行排序例如:
这是排序前的作业列表:
[11,23,1,5,8]
这是我的ObjectIds列表:
[Rx3sh3BWO4,P9m1hnWo7L,71K6AkJOo3,yjLhP0zKKG,5UffHYiwlk]
当我对作业列表进行排序
[1,5,8,11,23]
但现在我希望与ObjectIds列表的0索引中的1相关的Object ID ...
如何对List ObjectIds进行排序,比较作业列表????
答案 0 :(得分:0)
使用HashMap并将密钥添加为您的ObjectID,将值添加为jobId(反之亦然,根据您的要求)
如果你想排序,那么你也可以使用ArrayList
答案 1 :(得分:0)
您可以使用地图而不是列表吗? e.g。
Map<Integer, String>
你可以这样说
map.get(11)
将返回String&#39; Rx3sh3BWO4&#39;
对于排序,您可以使用SortedMap,它将按照您定义的方式保持自己排序,或者您可以使用Map.keySet()获取一组键并将其复制到List(或SortedSet),然后您可以对其进行排序在迭代之前。
请注意,一般情况下,Maps不保证保持其顺序 - LinkedHashMap保持您插入的顺序,并且SortedMap会将其键重新排序为您定义的顺序。
或者,保留两个列表,您可以创建自己的(丑陋的)排序方法,在排序之前复制作业列表,然后为ObjectIds创建一个新列表并迭代新排序的作业列表查找克隆中每个ObjectId的索引,并将ObjectId添加到新列表中。但这不是很漂亮,我会选择地图。