gpt4 book ai didi

java - foreach 排序列表的速度

转载 作者:行者123 更新时间:2023-12-02 06:21:09 25 4
gpt4 key购买 nike

有人可以建议如何按速度对这个列表进行排序吗?

到目前为止我已经尝试过了

    #foreach($it in ${pro.test}.sort(${pro.test.sortOrder})) 
.........
#end

但它抛出错误,我也尝试过

    #foreach($it in ${pro.test.sort(${pro.test.sortOrder})})
.........
#end

这次没有错误,但控件没有进入循环,

reference

最佳答案

首先,使用 ${...} 是帮助 Velocity 解析器准确了解您认为的 Velocity 代码的一种方法。通常,当速度看到 $something.somethingElse.somethingMore 时,它会尝试尽可能多地解析,直到看到断词字符,例如空格或逗号。当它看到 ${something.somethingElse}.somethingMore 时,它只会读取匹配的 } 作为实际代码,其余的都是纯文本。这意味着 ${pro.test}.sort(...).sort(...) 视为应该打印的纯文本,因此它不会'不要将其称为方法。这就是第一个示例失败并出现错误的原因。不过,您只需要在指令外部使用正式语法,您可以在 #foreach(... 内部时从调用中删除所有 {} )

其次,#foreach 非常宽松,当您尝试在迭代范围内传递无效的内容时,它不会提示;如果它没有解析为有效的列表,那么它只是忽略它并认为没有什么可以迭代的。当某些内容未按预期工作时,请打印您正在使用的值:

$pro.test $pro.test.class $pro.test.sortOrder $pro.test.sortOrder.class
#foreach ($it in ${pro.test.sort(${pro.test.sortOrder})})
...
#end

这打印了什么? $pro.test 真的是一个集合吗? $pro.test.sortOrder 是否是有效的排序顺序规范,如 SortTool 所期望的那样?

如果$pro.testSet interface的标准实现,那么就没有 sortsortOrder 方法。假设 Velocity SortTool$sorter 变量下可用,对于初学者,您可以尝试:

#foreach ($it in $sorter.sort($pro.test))
...
#end

现在,$pro.test.sortOrder 到底应该是什么?如果它是一个属性,那么请注意,出于安全原因,Velocity 不允许直接访问属性,它只能调用方法。作为简化语法的一种方法,$pro.test.sortOrder 实际上会尝试调用以下之一:getsortOrder()getSortOrder() >、get("sortOrder")issortOrder()isSortOrder()

关于java - foreach 排序列表的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21015677/

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