如何在 CodenameOne 项目中使用 Collections.binarySearch()
How to use Collections.binarySearch() in a CodenameOne project
我习惯于使用代码对 排序的 列表执行二进制搜索,例如 String
s 或 Integer
s沿着:
Vector<String> vstr = new Vector<String>();
// etc...
int index = Collections.binarySearch (vstr, "abcd");
我不清楚 codenameone 如何处理标准 java 方法和 类,但看起来如果 类 像 Integer
和String
(或这些的代号版本)实现了 Comparable
接口。
编辑:我现在看到按照以下几行的代码可以完成这项工作。
int index = Collections.binarySearch(vstr, "abcd", new Comparator<String>() {
@Override
public int compare(String object1, String object2) {
return object1.compareTo(object2);
}
});
添加 Comparable 接口(到各种原语 "wrappers")也将使它更容易使用 Collections.sort
(另一个非常有用的方法:-))
您也可以使用比较器进行排序,但我同意,这是我们个人需要在各种平台上的本机 VM 中提供的重要增强功能之一 this is my biggest peeve in our current VM。
您可以就此提交 RFE 并在 Number
问题中将其作为评论提及吗?
如果我们正在做那个改变,不妨两者都做。
我习惯于使用代码对 排序的 列表执行二进制搜索,例如 String
s 或 Integer
s沿着:
Vector<String> vstr = new Vector<String>();
// etc...
int index = Collections.binarySearch (vstr, "abcd");
我不清楚 codenameone 如何处理标准 java 方法和 类,但看起来如果 类 像 Integer
和String
(或这些的代号版本)实现了 Comparable
接口。
编辑:我现在看到按照以下几行的代码可以完成这项工作。
int index = Collections.binarySearch(vstr, "abcd", new Comparator<String>() {
@Override
public int compare(String object1, String object2) {
return object1.compareTo(object2);
}
});
添加 Comparable 接口(到各种原语 "wrappers")也将使它更容易使用 Collections.sort
(另一个非常有用的方法:-))
您也可以使用比较器进行排序,但我同意,这是我们个人需要在各种平台上的本机 VM 中提供的重要增强功能之一 this is my biggest peeve in our current VM。
您可以就此提交 RFE 并在 Number
问题中将其作为评论提及吗?
如果我们正在做那个改变,不妨两者都做。