我有一个列表意外更新。我有一个返回列表的函数。我想用不同的参数调用两次,并将结果存储在一个长列表中。

List<URL> resultUrls = new ArrayList<URL>();
webPages.runSearch(parameter1);                   // runs search and stores result in a public variable of the object webPages
resultUrls = webPages.getUrls();                  // returns public variable
webPages.runSearch(parameter2);
resultUrls.addAll(webPages.getUrls());


在执行最后一行之前,resultUrls已经包含使用parameter2从runSearch更新的结果。我希望它仍然保留带有parameter1的runSearch的结果。最终结果是,我使用彼此附加的parameter2获得了两个搜索副本。我想要的是使用parameter1搜索,并附加存储在resultUrls变量中的parameter2搜索。

非常感激任何的帮助。

最佳答案

List<URL> resultUrls = new ArrayList<URL>();
webPages.runSearch(parameter1);                   // runs search and stores result in a public variable of the object webPages
resultUrls = webPages.getUrls();                  // returns public variable


此后,您将丢弃在第一条语句中创建的ArrayList,现在resultUrls是对公共变量的引用,该公共变量是webPages引用的对象的成员。

从这一点上您应该能够弄清楚。

提示:上面的最后一条语句应该是

resultUrls.addAll(webPages.getUrls());

10-05 18:26