首先,我是 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
对象的数组列表。 System.out.println()
无法识别此格式。
您可以使用迭代器来迭代Arraylist。
Iterator<City> iterator = s1.returnListOfCities().iterator();
while(iterator.hasNext()){
System.out.println(iterator.next().getNameOfCity());
}
关于java - Arraylist Java 程序奇怪的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41646584/