我有问题来存储的所有值ArrayList<ArrayList<String>>成ArrayList<String>。这里stylistIDArray和durationArray是数组的数组。我想将它们的所有值分别存储在stylistId和中duration。的stylistid和duration是字符串的数组。
ArrayList<ArrayList<String>>
ArrayList<String>
stylistIDArray
durationArray
stylistId
duration
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(int i=0; i<stylistIDArray.size(); i++) { stylistId = stylistIDArray.get(i); duration = durationArray.get(i); }
注意:我已经尝试过了,但是对我不起作用。
为了通用,首先让它成为对象列表
List<List<Object>> listOfList;
您想要放入对象列表
List<Object> result;
注意结果列表将包含每个对象,包含的是输入列表。 这种转换将丢失有关哪个对象位于哪个列表中的信息。
您必须遍历listOfList。在每个循环中,您都会获得一个对象列表(List<Object> listOfObject)。然后遍历这些列表以获得每个对象(Object o)。然后将这些对象添加到结果列表(result.add(o))。
listOfList
List<Object> listOfObject
Object o
result.add(o)
for(List<Object> listOfObject : listOfList) { for(Object o : listOfObject) { result.add(o); } }
就您而言,问题是您使用情感代替add()。在每个循环中,它将用新值替换该值。因此,最后只存储了每个列表的最后一项。
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); } }