求个JAVA的算法解析操作LIST数据

解析list对象,如果某个对象属性type=0,则所有对象a3的值等于它(type=0的对象)的a2的值时,所有符合条件的对象填充到它字段a4(type=0的对象)的数组中,并删除已经被填充的对象,如下图:
[
    {
        "type": "1",
        "a2": "2",
        "a3": "3",
        "a4": []
    },
    {
        "type": "0",
        "a2": "tt",
        "a3": "3",
        "a4": []
    },
    {
        "type": "1",
        "a2": "2",
        "a3": "tt",
        "a4": []
    },
    {
        "type": "1",
        "a2": "2",
        "a3": "tt",
        "a4": []
    }
]

变为如下格式就可以了

[
    {
        "type": "1",
        "a2": "2",
        "a3": "3",
        "a4": []
    },
    {
        "type": "0",
        "a2": "tt",
        "a3": "3",
        "a4": [
            {
                "type": "1",
                "a2": "2",
                "a3": "tt",
                "a4": []
            },
            {
                "type": "1",
                "a2": "2",
                "a3": "tt",
                "a4": []
            },
            {
                "type": "1",
                "a2": "2",
                "a3": "tt",
                "a4": []
            }
        ]
    }
]

有个问题,死循环怎么办?