簡體   English   中英

從陣列列表中打印內容

[英]Printing contents from an arraylist

所以我想弄清楚如何打印我的數組列表的實際內容,而不是內存位置

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;


public class hw2redo 
{
    public static void main(String args[]) throws FileNotFoundException
    {
         //Scan file for data
         GeometricObject g = null;
         BufferedReader file = new BufferedReader(new FileReader("file.txt"));
            Scanner diskScanner = new Scanner(file);
            //Create dynamic array list
            ArrayList<GeometricObject> list = new ArrayList<GeometricObject>();
            //Scan data and add data to list
            while(diskScanner.hasNext())
            {
                String geolist = diskScanner.nextLine();
                g = recreateObject(geolist);

                list.add(g);

            }

            showObjects(list);

    }
    private static GeometricObject recreateObject(String data)
    {
        GeometricObject object = new GeometricObject(data);
        return object;
    }
    private static void showObjects(ArrayList<GeometricObject> list)
    {
    for(GeometricObject o : list)
      System.out.println(o);
    }


}
class GeometricObject
{

    public GeometricObject(String data) {
        // TODO Auto-generated constructor stub
    }

}

這是我的代碼。 我曾嘗試使用toString()和Arrays.toString(),但它們似乎不適用於arraylist(我嘗試過是因為它們適用於我的常規數組)。

我收到的輸出是

// Output
GeometricObject@55f96302
GeometricObject@3d4eac69
GeometricObject@42a57993
GeometricObject@75b84c92
GeometricObject@6bc7c054
GeometricObject@232204a1

很好,因為我很接近,我只需要弄清楚如何打印實際內容。

我在file.txt中尋找的內容是

Circle,green,false,4.0
Circle,blue,false,2.0
Circle,blue,true,7.0
Rectangle,orange,true,10.0,6.0
Rectangle,green,false,5.0,11.0
Rectangle,red,true,14.0,12.0

任何幫助將非常感激。 謝謝!

您的類中需要一個toString方法:

class GeometricObject
{

    private String data;

    public GeometricObject(String data) {
        this.data = data;
    }

    @Override
    public String toString() {
        return data;
    }

}

沒有覆蓋,您將使用Object.toString() 如您所見,對象的toString打印出對象的類名和哈希碼。

 System.out.println(o);

當您調用System.out.println時,顯然會調用您對象的toString()方法。 由於您沒有使用ovveride toString() ,因此它將調用默認實現。 轉換toString()方法以根據需要進行打印。

public class GeometricObject {

....


 @Override
    public String toString() {
       // return  string representation of your object.
    }


}

首先: toString實現的最佳標准樣式是什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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