Мне нужно выполнить итерацию объектов ArrayList и найти переменную, которая имеет одинаковое значение для нескольких объектов. В качестве примера ниже я просматриваю ArrayList, у которого есть подкласс. Все, что я хочу сделать, это выяснить, имеет ли дом или кондо один и тот же номер листинга для этого примера кода. Я попытался использовать двойной цикл и расширенный цикл с методом (sameListingNum), и у меня возникли проблемы с его устранением.Найти похожие целые числа внутри ArrayList с помощью метода класса
Спасибо
// main client class
public static void main(String[] args)
{
ArrayList<House> listings = new ArrayList();
listings.add(new House(0001, 200000.00));
listings.add(new House(0201, 200000.00));
listings.add(new House(0001, 200000.00));
listings.add(new House(0401, 200000.00));
listings.add(new House(0031, 200000.00));
listings.add(new Condo(0401, 200000.00, 4));
listings.add(new Condo(0001, 120000.00, 3));
listings.add(new Condo(0301, 220000.00, 2));
listings.add(new Condo(0001, 130000.00, 3));
listings.add(new Condo(0201, 130000.00, 3));
for(House currentHouse: listings)
System.out.println(currentHouse);
for(int i=0; i<listings.size()-1; i++)
{
for(int j=i+1; j<listings.size(); j++)
{
}
}
// House Class
public class House
{
public int listingNum;
public double price;
public House()
{
listingNum = 0;
price = 0.00;
}
public House(int newListingNum, double newPrice)
{
listingNum = newListingNum;
price = newPrice;
}
public int getListingNum()
{
return listingNum;
}
public double getPrice()
{
return listingNum;
}
public String toString()
{
return ("Listing number: "+listingNum+", Price: "+price);
}
public boolean sameListingNum(Object other)
{
if(!(other instanceof House))
return false;
else {
House objHouse = (House)other;
if(listingNum - objHouse.getListingNum() == 0)
{
System.out.println("Same listing numbers: "
+listingNum+", "+objHouse.getListingNum());
return true;
}
else
return false;
}
}
}
// Condo Class
public class Condo extends House
{
public int connectedUnits;
public Condo()
{
super();
connectedUnits = 0;
}
public Condo(int newListingNum, double newPrice, int newConUnits)
{
super(newListingNum, newPrice);
connectedUnits = newConUnits;
}
public double getPrice()
{
return price;
}
public int getListingNum()
{
return listingNum;
}
public int getConnectedUnits()
{
return connectedUnits;
}
public String toString()
{
return super.toString()+", Number of connected unints: "+connectedUnits;
}
public boolean sameListingNum(Object other)
{
if(!(other instanceof House))
return false;
else {
House objHouse = (House)other;
if(listingNum - objHouse.getListingNum() == 0)
{
System.out.println("Same listing numbers: "
+listingNum+", "+objHouse.getListingNum());
return true;
}
else
return false;
}
}
Я не знаком с использованием этого метода (Карта списка). Можете ли вы применить тот же методListingNum или модифицированную версию для этого, чтобы это возможно? – JRW2252
Вы хотите сгруппировать дома и квартиры с таким же листинговым номером? Например, все 0001: [Дом (0001, 200000.00), Дом (0001, 200000.00), Кондо (0001, 120000.00, 3), Кондо (0001, 130000.00, 3)]. Все 0031: [Дом (0031, 200000.00)]. Все 0201: [Кондоминиум (0201, 130000.00, 3), Дом (0201, 200000.00)]. И так далее ... – Fedy2
Да, это основная цель, но я не хочу сортировать ArrayList или изменять ArrayList. Это базовая итерация и поиск аналогичного спискаNums. Надеюсь, это имеет смысл. – JRW2252