如何将所有ArrayList <ArrayList >值存储到ArrayList 中?

我有问题将ArrayList<ArrayList>所有值存储到ArrayList 。 这里的stylistIDArraydurationArray是数组的数组。 我想分别在stylistIdduration存储它们的所有值。 stylistidduration是字符串数组。

这是我的尝试,但它只存储每个数组数组的最后一项。

 ArrayList<ArrayList> stylistIDArray; ArrayList<ArrayList> durationArray; stylistIDArray = differentGenderServicesAdapter.getSelectedStylistIdArray(); durationArray = differentGenderServicesAdapter.getSelectedDurArray(); ArrayListstylistId = new ArrayList(); ArrayListduration = new ArrayList(); for(int i=0; i<stylistIDArray.size(); i++) { stylistId = stylistIDArray.get(i); duration = durationArray.get(i); } 

注意:我已经尝试过这个 ,但对我不起作用。

为了通用,首先让我们成为对象列表的列表

 List> listOfList; 

你想要放入一个对象列表

 List result; 

注意结果列表将包含每个包含的对象是输入列表。 此转换将丢失哪个对象在哪个列表中的信息。

你必须遍历listOfList 。 在每个循环中,您将获得一个对象ListlistOfObjectListlistOfObject )。 然后循环遍历这些列表以获取每个对象( Object o )。 然后将这些对象添加到结果列表( result.add(o) )。

 for(List listOfObject : listOfList) { for(Object o : listOfObject) { result.add(o); } } 

在您的情况下,问题是您使用效果而不是add() 。 在每个循环中,这将替换新值。 所以最后你只存储了每个列表的最后一项。

 stylistId=stylistIDArray.get(i); //This replace the existing stylistId 

而是尝试类似的东西

 ArrayList> stylistIDArray; ArrayList> durationArray; stylistIDArray = differentGenderServicesAdapter.getSelectedStylistIdArray(); durationArray = differentGenderServicesAdapter.getSelectedDurArray(); ArrayList stylistId = new ArrayList<>(); ArrayList duration = new ArrayList<>(); for(ArrayList l : stylistIDArray) { for(String s : l) { stylistId.add(s); } } for(ArrayList l : durationArray ) { for(String s : l) { duration.add(s); } } 

你用arraylist做了错误的操作,在循环中你从stylistIDArray获取数据并分配给aryalist ,而不是插入列表,看看这个

 stylistIDArray=differentGenderServicesAdapter.getSelectedStylistIdArray(); durationArray=differentGenderServicesAdapter.getSelectedDurArray(); ArrayListstylistId=new ArrayList<>(); ArrayListduration=new ArrayList<>(); for(int i=0; i 

希望它能帮到你!