在整数的json数组中搜索整数值

时间:2015-07-31 05:35:20

标签: android arrays json

我有json array integers我已经排序了。所以现在我想在json array内搜索整数元素。(json array的大小因情况而异,但它只包含integers和没有其他的)。有效搜索的最佳方法是什么?

3 个答案:

答案 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
  }
}