我有一个列表意外更新。我有一个返回列表的函数。我想用不同的参数调用两次,并将结果存储在一个长列表中。
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());