java - Arraylist Java 程序奇怪的输出

标签 java arraylist

首先,我是 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/

相关文章:

java - 为什么 UnixSystem().getUsername() 返回 null(Docker 中的 OpenJDK 17)

java - 如果我访问 MyClass.class.getName(),是否会加载 Java 类?

java - Arraylist 不断抛出 IndexOutOfBounds

java - 如何显示java arraylist的不同步性?

java - 在将相同的元素添加到新的 ArrayList 后,有什么方法可以从给定的 ArrayList 中删除某些元素吗?

java - 替换文本后如何保持文档文件内容相同的格式

java - 在 AWS Java API 中,我如何知道我的 EBS 快照何时创建?

java - Spring Integration 5.1 - 使用@IntegrationConverter 的集成流转换不起作用

java - 如何向该驱动程序添加一个构造函数,以便它同时适用于数组列表和链表?

bash 参数用换行符替换