Android 在整数的json数组中搜索整数值
我有一个Android 在整数的json数组中搜索整数值,android,arrays,json,Android,Arrays,Json,我有一个json数组,包含整数,我已经对其进行了排序。现在我想在json数组中搜索一个整数元素(json数组的大小根据情况而变化,但它只包含整数,没有其他内容)。进行有效搜索的最佳方法是什么?var obj=“{\'array\':[\'key1\':\'value1\',\'key2\':\'value2\'”]; var obj = "{\"array\":[\"key1\":\"value1\",\"key2\":\"value2\"]}"; var searchInt= int val
json数组
,包含整数
,我已经对其进行了排序。现在我想在json数组
中搜索一个整数元素(json数组的大小根据情况而变化,但它只包含整数
,没有其他内容)。进行有效搜索的最佳方法是什么?var obj=“{\'array\':[\'key1\':\'value1\',\'key2\':\'value2\'”];
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
}
}
var searchInt=int值;
对于(变量i=0;i
var obj=“{\'array\':[\'key1\':\'value1\',\'key2\':\'value2\']}”;
var searchInt=int值;
对于(变量i=0;i
var obj=“{\'array\':[\'key1\':\'value1\',\'key2\':\'value2\']}”;
var searchInt=int值;
对于(变量i=0;i
var obj=“{\'array\':[\'key1\':\'value1\',\'key2\':\'value2\']}”;
var searchInt=int值;
对于(变量i=0;i
您可以对数组进行二进制搜索,如:
1-设置最小/最大整数索引以覆盖整个浮点数组
2 -在索引MID=(min +max/2)范围内的中间值对搜索值x
进行测试 3-如果x小于此值,则将“最大值”设置为“中间值”,否则将“最小值”设置为“中间值”4-重复(2-4),直到找到正确的值为止您可以对数组执行二进制搜索,如: 1-设置最小/最大整数索引以覆盖整个浮点数组
2 -在索引MID=(min +max/2)范围内的中间值对搜索值x
进行测试 3-如果x小于此值,则将“最大值”设置为“中间值”,否则将“最小值”设置为“中间值”4-重复(2-4),直到找到正确的值为止您可以对数组执行二进制搜索,如: 1-设置最小/最大整数索引以覆盖整个浮点数组
2 -在索引MID=(min +max/2)范围内的中间值对搜索值x
进行测试 3-如果x小于此值,则将“最大值”设置为“中间值”,否则将“最小值”设置为“中间值”4-重复(2-4),直到找到正确的值为止您可以对数组执行二进制搜索,如: 1-设置最小/最大整数索引以覆盖整个浮点数组
2 -在索引MID=(min +max/2)范围内的中间值对搜索值x
进行测试 3-如果x小于此值,则将“最大值”设置为“中间值”,否则将“最小值”设置为“中间值”4-重复(2-4)直到你找到了@Friar Bob建议的正确值,我使用二进制搜索进行搜索。我首先将json数组转换为一个名为selectedCatIds的列表变量,如果元素为false,则使用下面的方法返回true。谢谢大家的帮助。二进制搜索确实有效地完成了这项工作
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);
}
private boolean searchInselectEdisList(int-storeCatId){
int notFound=-1;
int low=0,high=selectedCatIds.size()-1,mid=(低+高)/2;
而(低=0);
}
根据@Friar Bob的建议,我使用二进制搜索进行搜索。我首先将json数组转换为一个名为selectedCatIds的列表变量,如果元素为false,则使用下面的方法返回true。谢谢大家的帮助。二进制搜索确实有效地完成了这项工作
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);
}
private boolean searchInselectEdisList(int-storeCatId){
int notFound=-1;
int low=0,high=selectedCatIds.size()-1,mid=(低+高)/2;
而(低=0);
}
根据@Friar Bob的建议,我使用二进制搜索进行搜索。我首先将json数组转换为一个名为selectedCatIds的列表变量,如果元素为false,则使用下面的方法返回true。谢谢大家的帮助。二进制搜索确实有效地完成了这项工作
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);
}
private boolean searchInselectEdisList(int-storeCatId){
int notFound=-1;
int low=0,high=selectedCatIds.size()-1,mid=(低+高)/2;
而(低=0);
}
根据@Friar Bob的建议,我使用二进制搜索进行搜索。我首先将json数组转换为一个名为selectedCatIds的列表变量,如果元素为false,则使用下面的方法返回true。谢谢大家的帮助。二进制搜索确实有效地完成了这项工作
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);
}
private boolean searchInselectEdisList(int-storeCatId){
int notFound=-1;
int low=0,high=selectedCatIds.size()-1,mid=(低+高)/2;
而(低=0);
}
假设数组已排序,并且您知道如何搜索,二进制搜索是最有效的。线性搜索是我想到的第一件事,但我只想进行有效搜索,因为搜索非常频繁,我的应用程序的性能也取决于此。@Rohit查看此网站:您尝试过吗?jsonArray.toString()包含(“”);我可以使用二进制搜索,只是为了获取知识,android/java是否提供了搜索功能?就像我们有Collections.sort(Arraylist)对整数值列表进行排序。假设数组已排序,并且您知道如何搜索,二进制搜索是最有效的。线性搜索是我想到的第一件事,但我只想做一个高效的搜索,因为搜索是经常进行的,我的应用程序的性能也取决于它。@Rohit检查这个网站:你试过了吗?jsonArray.toString()包含(“”);我可以使用二进制搜索,只是为了获取知识,android/java是否提供了搜索功能?就像我们有Collections.sort(Arraylist)用于对整数值列表进行排序。假设数组已排序,并且您知道如何搜索,二进制搜索是最有效的。线性搜索,这是我想到的第一件事,但我只想进行有效的搜索,因为搜索非常频繁