首页 > 解决方案 > 合并 2 个具有空值的对象的数组列表

问题描述

我正在尝试将 2 个对象数组列表连接成一个,但我不知道该怎么做。我已经尝试过 addAll 和 add 但这些方法并不能真正做到我想要的。基本上,我有一个数组列表,其值如下:

SearchResult1 [title=null, url=null, price=19 690 EUR]

另一个具有这样的值:

SearchResult2 [title=Ford Car, url=http://www.something.com, price=null]

我如何将这两个数组合并为一个具有如下值的数组:

SearchResult3 [title=Ford Car, url=http://www.something.com, price=19 690 EUR]

这是到目前为止的代码:

  public List searchMethod() {
                try {
                    final String query = "ford";

                    final Document page = Jsoup.connect("link" + URLEncoder.encode(query, "UTF-8")).userAgent(USER_AGENT).get();

                     List<SearchResult> resultList1 = new ArrayList<SearchResult>();
                     List<SearchResult> resultList2 = new ArrayList<SearchResult>();
                     List<SearchResult> resultList3 = new ArrayList<SearchResult>();


                    for(Element searchResult : page.select(".offer-price")) {
                         String price = searchResult.text();
                         resultList1.add(new SearchResult(price));
                    }

                    for(Element searchResult : page.select(".offer-title__link")) {
                         String title = searchResult.text();
                         String url = searchResult.attr("href");
                         resultList2.add(new SearchResult(title, url));
                    }
                    resultList3.addAll(resultList1);
                    resultList3.addAll(resultList2);

                    return resultList3;

                }catch(Exception e) {
                    e.printStackTrace();
                }

                return Collections.emptyList();

        }

我放入这些数组中的值是从网页中提取的 感谢您的帮助!

标签: javaarraylist

解决方案


评论中,您说过您只想按每个索引关联/合并两个列表中的对象。

您可以简单地遍历列表,构造一个新的SearchResult(假设您有字段的吸气剂)

for(int i = 0; i < resultList1.size(); i++) {
    resultList3.add(new SearchResult(resultList1.get(i).getPrice(),
                   resultList2.get(i).getTitle(),
                   resultList2.get(i).getUrl()));
}

您可能必须更改传递给SearchResult构造函数的参数的顺序price,因为您没有显示它。titleurl


推荐阅读