合并两个自定义对象类型的ArrayLists

时间:2015-03-25 09:27:41

标签: java android arraylist

我想将两个ArrayList合并为一个。这些ArrayLists不是" String"的类型。对象类型是一个自定义类。

private ArrayList<NewsItem> newsList;
private ArrayList<NewsItem> eventList;
private ArrayList<NewsItem> combinedList;

这就是我尝试组合这两个ArrayLists的方法:

private void combineArrays() {

    if(newsList.size() > 0){
        for (int i = 0; i<newsList.size(); i++){

            NewsItem aBean = newsList.get(i);
            combinedList.add(aBean);
        }
    }
    if(eventList.size() > 0){
        for (int i = 0; i<eventList.size(); i++){
            NewsItem aBean = eventList.get(i);
            combinedList.add(aBean);;
        }
    }
}

该应用程序正在崩溃。这种做法有什么不对?

3 个答案:

答案 0 :(得分:4)

你可以做到这一点......

combinedList = new ArrayList<NewsItem>();
if (newsList != null)
  combinedList.addAll( newsList );
if (eventList!= null)
  combinedList.addAll( eventList);

如果您不想要重复(意味着您已正确实现了equals()),那么您可以使用HashSet,但这意味着您不需要特定的元素顺序。

答案 1 :(得分:0)

您可以将 addAll()方法用作:

combinedList.addAll(newsList);
combinedList.addAll(eventList);

答案 2 :(得分:0)

如果你想要一个新的清单:

 ArrayList<NewsItem> combinedList = new ArrayList();
 combinedList.addAll(newsList);
 combinedList.addAll(eventList);

太晚了..