我遇到将timeOffset == 0
的所有值存储到ArrayList<ArrayList<String>>
的问题。这里ArrayList<String>
和stylistIDArray
是数组的数组。我想将所有值分别存储在durationArray
和stylistId
中。 duration
和stylistid
是字符串数组。
这是我的尝试,但它只存储每个数组数组的最后一项。
duration
注意:我已经尝试this,但不适合我。
答案 0 :(得分:1)
为了通用,首先让对象列表列表
List<List<Object>> listOfList;
您想要放入对象列表
List<Object> result;
注意结果列表将包含每个包含的对象是输入列表。此转换将丢失哪个对象在哪个列表中的信息。
你必须遍历listOfList
。在每个循环中,您将获得一个对象列表(List<Object> listOfObject
)。然后遍历这些列表以获取每个对象(Object o
)。然后将这些对象添加到结果列表(result.add(o)
)。
for(List<Object> listOfObject : listOfList) {
for(Object o : listOfObject) {
result.add(o);
}
}
在您的情况下,问题是您使用效果而不是add()
。在每个循环中,这将替换新值。所以最后你只存储了每个列表的最后一项。
stylistId=stylistIDArray.get(i); //This replace the existing stylistId
而是尝试像
这样的东西ArrayList<ArrayList<String>> stylistIDArray;
ArrayList<ArrayList<String>> durationArray;
stylistIDArray = differentGenderServicesAdapter.getSelectedStylistIdArray();
durationArray = differentGenderServicesAdapter.getSelectedDurArray();
ArrayList<String> stylistId = new ArrayList<>();
ArrayList<String> duration = new ArrayList<>();
for(ArrayList<String> l : stylistIDArray) {
for(String s : l) {
stylistId.add(s);
}
}
for(ArrayList<String> l : durationArray ) {
for(String s : l) {
duration.add(s);
}
}
答案 1 :(得分:0)
您使用arraylist
执行错误操作,在循环中从stylistIDArray
获取数据并分配给aryalist
,而不是插入列表中,看看这个
stylistIDArray=differentGenderServicesAdapter.getSelectedStylistIdArray();
durationArray=differentGenderServicesAdapter.getSelectedDurArray();
ArrayList<String>stylistId=new ArrayList<>();
ArrayList<String>duration=new ArrayList<>();
for(int i=0; i<stylistIDArray.size(); i++) {
stylistId.add(stylistIDArray.get(i));
duration.add(durationArray.get(i));
}
希望它会对你有所帮助!