我在LibGdx
Stage对象中对Actor排序时遇到麻烦。渲染舞台后,将按照添加顺序渲染图像。舞台使用数组来保存演员。我尝试设置每个Actor的ZIndex,但仍然没有排序。然后我尝试创建一个比较器对象,如下所示:
public class ActorComparator implements Comparator < Actor > {
@Override
public int compare(Actor arg0, Actor arg1) {
if (arg0.getZIndex() < arg1.getZIndex()) {
return -1;
} else if (arg0.getZIndex() == arg1.getZIndex()) {
return 0;
} else {
return 1;
}
}
}
然后当我想进行实际比较时,我做了:
Collections.sort(Stage.getActors(), new ActorComparator());
它给了我以下错误,将无法编译:
The method sort(List<T>, Comparator<? super T>) in the type Collections
is not applicable for the arguments (Array<Actor>, ActorComparator)
我不知道我在做什么错。谁可以给我解释一下这个?
看起来您的代码Stage.getActors()
返回的Array
是Actors
而不是List
。
Collections.sort()
方法仅接受列表。尝试:
Collections.sort(Arrays.asList(Stage.getActors().toArray()), new ActorComparator());
@James Holloway的排序更新(按问题中的z-index进行更新): 舞台将z-index覆盖为Array的内部顺序。因此,设置Z-
Index无效,除非您将其设置为大于列表的长度,然后仅将图像放在列表的顶部(内部舞台会这样做)。这可以通过按名称或ID排序来解决。
问题内容: 我正在尝试这样做: 但这不对…文档模糊不清…您如何在Jinja2中做到这一点? 问题答案: 从2.6版开始,Jinja2的内置排序过滤器允许您指定属性以进行排序: 参见http://jinja.pocoo.org/docs/templates/#sort
我想根据数字字段对搜索结果进行排序。在下面的示例代码中,我希望基于'Age'字段进行排序。我从以下答案开始: [如何在Lucene 6中对IntPont或LongPoint字段进行排序 [在Lucene中根据数字字段对搜索结果进行排序 我在搜索函数中将sortfield.type.score更改为sortfield.type.long。但我得到: 意外的docvalues为字段“年龄”键入NONE
问题内容: 我有一堂水果课。我正在创建此类的列表,并将每个水果添加到列表中。我想根据水果名称的顺序对该列表进行排序。 我正在使用for循环创建它的列表 我需要使用列表中每个对象的水果名称对该arrayList进行排序 问题答案: 使用这样的: 现在,你的水果清单将基于进行排序。
问题内容: 我们如何排序? 我想根据中的值进行排序。 问题答案: 你是否必须使用HashMap?如果只需要Map Interface,请使用TreeMap 如果要通过比较HashMap中的值进行排序。你必须编写代码才能执行此操作,如果要执行此操作,则可以对HashMap的值进行排序: 如果你想经常访问此排序列表,则可以将元素插入到中,尽管集合和列表的语义有些不同。
问题内容: 如何在Android上按标签名称的升序和降序对JSONArray进行排序。 在我的应用程序中,我有一个类似于以下内容的JSON,需要根据用户选项显示数据(按user_id标记按升序或降序排序)。我已将JSON解析如下: 这是我的JSON响应: 解析时,我需要按“ user_id”标签名称排序的“结果” JSON数组,如何在Android中做到这一点? 问题答案: 这段代码可以返回排序后