问题:接口返回值:[{key:1,value:一#二},{key:2,value:三#四}],实际上是两条数据,key不变,value值多条用#分隔开,需要分隔成两个list
想要的效果:[[{key:1,value:一},{key:2,value:三}],[{key:1,value:二},{key:2,value:四}]]。
解决思路:
1.首先根据分隔符,来确定将list对象拆分成几个list对象。
2.因为key的值不变,只需要改变value值即可,所以想复制list对象,做修改即可。
3.直接赋值不可,因为指向同一地址,改变了对象,原始数据也会变,所以想到了深拷贝。
4.深拷贝后发现,改变了拷贝的对象值,原始对象还是变了,debug,发现list是生成新的地址了,但是list中的对象,并没有改变。
5.用了最原始的方式,创建空的list,在创建新的对象,add添加进去。
List<list<对象>> firstFloor = new ArrayList<>();
for (int i=0;i<分隔数组.length;i++){
list<对象> twoFloor = new ArrayList<>();
for (int j=0;j<原始list.size();j++){
对象 = new 对象();
将原始对象的值塞入新对象中
twoFloor.add(对象);
}
firstFloor.add(twoFloor);
}
暂时解决了问题,不够优秀,再找一找更优秀的解决方式。