我有json array
integers
我已经排序了。所以现在我想在json array
内搜索整数元素。(json array
的大小因情况而异,但它只包含integers
和没有其他的)。有效搜索的最佳方法是什么?
答案 0 :(得分:1)
您可以对数组进行二进制搜索,如:
1-设置最小/最大整数索引以覆盖整个浮点数组
2-测试索引中间=(min + max / 2)范围中间的值与搜索值x
3-如果x低于此值,则将max设置为mid,否则将min设置为mid
4-重复(2-4)直到找到正确的值
答案 1 :(得分:1)
正如@Friar Bob所建议的那样,我使用二分搜索来进行搜索。我首先将json数组转换为名为selectedCatIds的List变量,如果找到该元素,则使用下面的方法返回true,否则返回false。谢谢大家的帮助。二进制搜索确实可以有效地完成工作。
private boolean searchInSelectedIdsList(int storeCatId){
int notFound = -1;
int low=0,high=selectedCatIds.size()-1,mid =(low+high)/2;
while(low<=high && selectedCatIds.get(mid)!=storeCatId){
if(selectedCatIds.get(mid)<storeCatId)
low = mid+1;
else
high = mid-1;
mid = (low+high)/2;
}
if(low>high)
mid=notFound;
return (mid>=0);
}
答案 2 :(得分:0)
var obj = "{\"array\":[\"key1\":\"value1\",\"key2\":\"value2\"]}";
var searchInt= int value;
for (var i = 0; i < obj.length; i++){
if (obj[i].code == searchInt){
// obj[i].name is the matched result
}
}