簡體   English   中英

Arraylist Java程序奇怪的輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM