如何存储搜索结果和显示数据JAVA



我被卡住了

我有两种方法需要

public void searchByPriceRange(double minPrice, double maxPrice)

public void displaySearchResults(ArrayList<Property> searchResults)

两者都需要返回void。

唯一允许我使用的实例变量是(不确定是哪一个(

private ArrayList<Property> properties = new ArrayList<Property>();

private ArrayList<Property> properties;

我需要搜索一个名为properties的数组列表,并将价格范围内的属性存储在LOCAL ArrayList中,然后将其传递给displaySearchResults(ArrayList searchResults(进行显示。

如何创建本地数组列表?调用displaySearchReults方法时,如何访问本地数组列表中的数据?如何调用显示搜索结果方法?

现在,我认为我的searchByPriceRange方法将数据存储在一个名为searchResults的局部变量中。但我不明白如何调用displaySearchResults方法,并在searchByPriceRange方法中创建的本地数组列表中显示数据。

我在agentListings类中的完整方法

public void searchByPriceRange(double minPrice, double maxPrice){
ArrayList<Property> searchResults;
searchResults = new ArrayList<Property>();
for (Property property : properties){
if (property.getAskingPrice() > minPrice &&
property.getAskingPrice() < maxPrice){
searchResults.add(property);
}
}
}
public void displaySearchResults(ArrayList<Property> searchResults){

for(Property result: searchResults) {
System.out.println(result.getListingNumber());
}
}

我的驾驶员等级

AgentListings CharlesListings = new AgentListings();
CharlesListings.displaySearchResults(CharlesListings.searchByPriceRange(1, 2));

这条线路不通。如果方法参数必须是,则不确定在参数中放入什么

public void displaySearchResults(ArrayList<Property> searchResults)

我刚刚发现了我们在说明中忽略的部分。

public void searchByPriceRange(double minPrice,double maxPrice(

将在ArrayList中搜索询问的属性price介于minPrice和maxPrice之间,并将每个匹配项添加到然后将传递给显示搜索结果(ArrayList searchResults(以显示的本地ArrayList

你在问题中确实提到了这一点,但你写的其他东西让我有点想错了方向;(

意思是:

public class AgentListings {
private ArrayList<Property> properties = new ArrayList<Property>();     

public void searchByPriceRange(double minPrice, double maxPrice) {
ArrayList<Property> searchResults = new ArrayList<Property>(); // <- This is your local ArrayList

for (Property property : properties){
if (property.getAskingPrice() >= minPrice && property.getAskingPrice() <= maxPrice) {
searchResults.add(property);
}
}
displaySearchResults(searchResults); // <- And here we go calling the method with the filtered list
}
public void displaySearchResults(ArrayList<Property> searchResults){
System.out.println(searchResults.size());
for(Property result: searchResults) { 
System.out.println(result);
}
}
}

这里的重要部分是,我们不会更改类记忆的属性。我们创建一个新的本地ArrayList并立即显示它

与其在函数内部声明arrayList,不如在类似的类中声明它

class{
ArrayList<Property> searchResults = new ArrayList<Property>();
public void searchByPriceRange(double minPrice, double maxPrice){

for (Property property : properties){
if (property.getAskingPrice() > minPrice &&property.getAskingPrice() < maxPrice){
this.searchResults.add(property); \You can remove "this." as it may work without that
}
}
}
public void displaySearchResults(ArrayList<Property> searchResults){

for(Property result: this.searchResults) { \You can remove "this." as it may work without that
System.out.println(result);
System.out.println(searchResults.size());
}
}
}

最新更新