[英]Arraylist Java Program weird output
首先,我是ArrayList的新手。 我有這個程序,其中SalesPerson對象將遍歷全球20個城市。 對於每次訪問,程序都會要求用戶輸入城市名稱,城市大小和郵政編碼。 這是使用for循環和ArrayList完成的。 但是當我要顯示所有城市時,它會打印出奇怪的字符。 我可以知道我哪里出了錯嗎?
Below is the sample output.
Enter name of city: Singapore
Enter size of city: Small
Enter postal code: 132115
==
Enter name of city: Indonesia
Enter size of city: Big
Enter postal code: 111222
==
Cities Visited: [travellingapp.City@42a57993, travellingapp.City@75b84c92]
這是我的代碼:
TravellingApp.java
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
SalesPerson s1 = new SalesPerson();
for(int j=1; j<=20; j++)
{
System.out.print("Enter name of city: ");
String name = sc.nextLine();
System.out.print("Enter size of city: ");
String size = sc.nextLine();
System.out.print("Enter postal code: ");
int postalCode = sc.nextInt();
sc.nextLine();
System.out.println("___________________________________________");
City c1 = new City(name, size, postalCode);
s1.addCity(c1);
}
System.out.print("Cities Visited: "+ s1.returnListOfCities());
}
SalesPerson.java(類)
public class SalesPerson {
private ArrayList<City>listOfCities = new ArrayList<City>();
public void addCity(City c1)
{
listOfCities.add(c1);
}
public ArrayList<City> returnListOfCities()
{
return listOfCities;
}
}
City.java(類)
public class City {
private String nameOfCity;
private String sizeOfCity;
private int postalCode;
public City(String nameOfCity, String sizeOfCity, int postalCode)
{
this.nameOfCity = nameOfCity;
this.sizeOfCity = sizeOfCity;
this.postalCode = postalCode;
}
public String getNameOfCity() {
return nameOfCity;
}
public String getSizeOfCity() {
return sizeOfCity;
}
public int getPostalCode() {
return postalCode;
}
public void setNameOfCity(String nameOfCity) {
this.nameOfCity = nameOfCity;
}
public void setSizeOfCity(String sizeOfCity) {
this.sizeOfCity = sizeOfCity;
}
public void setPostalCode(int postalCode) {
this.postalCode = postalCode;
}
}
當您調用s1.returnListOfCities()
,該方法將返回City
對象的s1.returnListOfCities()
。 System.out.println()
無法識別此格式。
您可以使用Iterator迭代Arraylist。
Iterator<City> iterator = s1.returnListOfCities().iterator();
while(iterator.hasNext()){
System.out.println(iterator.next().getNameOfCity());
}
Java中的每個類都從Object
擴展而成,該Object
具有toString()
方法,該返回的字符串類似於您看到的字符串,而System.out.println()
方法使用它,因此,如果您尚未在類中實現它,將使用Object
(多態)中的一個。
就像是
public String toString(){
return "City { "+nameOfCity+", " + sizeOfCity +", "+postal code+"}";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.