如何在android

时间:2016-01-16 05:49:35

标签: java android

 List<String> list2 =new ArrayList<String>();
 int iArr[] = new int[ja.length()];//{"846001","846005","846000","846002","846009"}
 Arrays.sort(iArr);
 for (int i = 0; i < ja.length(); i++) {
      _jobject = ja.getJSONObject(i);
      iArr[i] = Integer.parseInt(_jobject.getString("Pincode"));
 }
 for(int k=0;k<iArr.length;k++) {
     list2.add(String.valueOf(iArr[k]));
 } 

我想在Array列表中对其进行排序和绑定。我想要

  

{&#34; 846000&#34;,&#34; 846001&#34;,&#34; 846002&#34; ,&#34; 846005&#34;,&#34; 846009&#34;}

但是根据给定的逻辑不排序请告诉我哪里出错了。

3 个答案:

答案 0 :(得分:1)

我认为问题在于您在操作数组之前对数组进行排序。您应该在Arrays.sort(iArr)循环之后移动for

List<String> list2 =new ArrayList<String>();
int iArr[] = new int[ja.length()];//{"846001","846005","846000","846002","846009"}

for (int i = 0; i < ja.length(); i++) {
    _jobject = ja.getJSONObject(i);
    iArr[i] = Integer.parseInt(_jobject.getString("Pincode"));
}
Arrays.sort(iArr);
for(int k=0;k<iArr.length;k++) {
    list2.add(String.valueOf(iArr[k]));
}

答案 1 :(得分:0)

将值作为String访问,因此将其转换为Integers,然后对其进行排序。截至目前,您正在对其进行排序,然后才能正确填充它。

 for (int i = 0; i < ja.length(); i++) {
      _jobject = ja.getJSONObject(i);
      iArr[i] = Integer.parseInt(_jobject.getString("Pincode"));
 }
 Arrays.sort(iArr);
 for(int k=0;k<iArr.length;k++) {
     list2.add(String.valueOf(iArr[k]));
 } 

答案 2 :(得分:0)

让我们模拟一下处理器执行时给定逻辑的执行情况。

第1行:初始化一个空字符串类型ArrayList

第2行:初始化一个空的int数组,长度为ja.length()long

第3行:您对空int数组进行排序

第4行到第7行:从json

顺序地将Pincode分配给你的int数组

我们不知道那些json对象存储了什么,但显然它们没有排序。当它们被复制到你的int数组时,int也没有被排序。

在第4行到第7行之后移动第3行for循环应该完成这项工作。当内部有一些元素时,你应该对数组进行排序。排序空无效。