这是需要实现的效果图:效果是,有数据的展示数据,没数据的一律显示为空,这个地方我做了for循环和if循环的判断处理,难度仅次于当年的九九乘法表 

java关于list的多种应用判断_i++

这是服务端返回的json:

{
	"resultStatus": true,
	"resultData": [{
		"girdNo": 1,
		"devices": [{
			"deviceRfid": "SBYCFUDVXR4ZM01",
			"deviceSn": "SNsl",
			"deviceType": "DRONE",
			"deviceNo": "SBYCFUDVXR4ZM01",
			"deviceName": "Mavic 2专业版2",
			"deviceImg": "http://118.24.5422.jpg"
		}, {
			"deviceRfid": "SB53DRIO3REGT02",
			"deviceSn": "123123",
			"deviceType": "DRONE",
			"deviceNo": "SB53DRIO3REGT02",
			"deviceName": "Mavic 2专业版2",
			"deviceImg": "http://118.2b422.jpg"
		}]
	}, {
		"girdNo": 2,
		"devices": [{
			"deviceRfid": "SBF9YM0LBPQ0803",
			"deviceSn": "45",
			"deviceType": "DRONE",
			"deviceNo": "SBF9YM0LBPQ0803",
			"deviceName": "厂家删除",
			"deviceImg": "http://118.2116c27bf.jpg"
		}]
	}, {
		"girdNo": 3,
		"devices": null
	}, {
		"girdNo": 4,
		"devices": []
	}]
}

看到没有?  真正的布局是有8个柜子的,但是服务端返回的json长度不匹配,只有4条数据,

解决代码:

package com.example.administrator.testz;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    List<String> list = new ArrayList<String>();  //理论集合
    List<String> list2 = new ArrayList<String>();  //实际集合
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        list.add("o1");
        list.add("o1");
        list.add("o2");
        list.add("o3");
        list.add("o4");
        list.add("o5");
        list.add("o6");
        list.add("o7");



        list2.add("p1");
        list2.add("p1");
        list2.add("");
        list2.add("");


        for(int i=0;i<list.size();i++){
            System.out.println(list.get(i)+"=="+list.size());

        }

        System.out.println("===========a===========");

        for(int i=0;i<list2.size();i++){
            System.out.println(list2.get(i)+"=="+list2.size());
        }

        //有数据的i打印  无数据的 打印i
         //   0   1 有数据    2  3   4   5   6  7  无数据

        System.out.println("===========n===========");


        for(int i=0;i<list.size();i++){
            if(i<list2.size()){
                for(int j=0;j<list2.size();j++){
                    if(list2.get(j).isEmpty() || list2.get(j).equals("")){
                        System.out.println(j+"无数据");
                    }else{
                        System.out.println(j+"有数据");
                    }
                }
            }else{
                System.out.println(i+"没有数据");
            }
        } 
    } 
}

打印结果:

    0有数据
    1有数据
    2无数据
    3无数据
    0有数据
    1有数据
    2无数据
    3无数据
    0有数据
    1有数据
    2无数据
    3无数据
    0有数据
    1有数据
    2无数据
    3无数据
    4没有数据
    5没有数据
    6没有数据
    7没有数据

end ,其实这个东西就是一个小算法,但我确实花了半个小时才写出来,纪录一下