Java 列表意外更新
我有一个列表正在意外更新。我有一个返回列表的函数。我想用不同的参数调用它两次,并将结果存储在一个长列表中Java 列表意外更新,java,list,Java,List,我有一个列表正在意外更新。我有一个返回列表的函数。我想用不同的参数调用它两次,并将结果存储在一个长列表中 List<URL> resultUrls = new ArrayList<URL>(); webPages.runSearch(parameter1); // runs search and stores result in a public variable of the object webPages resultUrls =
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());
List resultUrls=new ArrayList();
webPages.runSearch(参数1);//运行搜索并将结果存储在对象网页的公共变量中
resultUrls=webPages.getUrls();//返回公共变量
网页。运行搜索(参数2);
addAll(webpage.getURL());
在执行最后一行之前,resultUrls已经包含使用parameter2从runSearch更新的结果。我希望它仍然保存带有参数1的runSearch的结果。最终的结果是,我得到了两个使用参数2相互附加的搜索副本。我想要的是使用parameter1进行搜索,并将搜索结果附加到ResultUrs变量中存储的parameter2中
任何帮助都将不胜感激。我们不知道
网页是什么,但我怀疑问题在于您的runSearch
方法不会创建新列表-它只是对现有列表进行了修改。我怀疑您想创建第一个列表的副本。请注意,您不需要创建的原始ArrayList
,因为您无论如何都会放弃它
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(parameter1);
List<URL> resultUrls = new ArrayList<URL>(webPages.getUrls());
webPages.runSearch(parameter2);
resultUrls.addAll(webPages.getUrls());
webPages.runSearch(parameter1);
List<URL> resultUrls = new ArrayList<URL>(webPages.getUrls());
webPages.runSearch(parameter2);
resultUrls.addAll(webPages.getUrls());
List<URL> resultUrls = webPages.runSearch(parameter1);
resultUrls.addAll(webPages.runSearch(parameter2));