2016-11-18 2 views
0

私の状況は、基本的に別のクラスのオブジェクトの束を取り、すべてのオブジェクトをarraylistに配置するクラスに対してtoString()メソッドを作成する必要があります。 arraylistを作成するクラスは、このtoString()メソッドを使用して、コンソールに表示する準備ができた書式設定された文字列ですべてのarraylistのオブジェクトを返します。 arraylistsに入れられるオブジェクトを作成するクラスは、それ自身のtoString()メソッドを持っていて、すべてのデータのきれいにフォーマットされた文字列を返します。おそらく、私はこのtoString()メソッドを他のクラスのtoString ) 方法?ここでは、コードです:ベース・オブジェクトを作成しますオブジェクトの書式付き配列を返すクラスtoString()メソッド

クラス:ArrayListのに上記のクラスから作られたオブジェクトを置く

public class Batter { 

    private String firstName; 
    private String lastName; 
    private int atBats; 
    private int hits; 
    private int doubles; 
    private int triples; 
    private int homeRuns; 

    public Batter(String fName, String lName){ 
     firstName = fName; 
     lastName = lName; 
    } 
    public void setBats(int batCount){ 
     atBats = batCount; 
    } 
    public void setHits(int hitCount){ 
     hits = hitCount; 
    } 
    public void setDoubles(int doubleCount){ 
     doubles = doubleCount; 
    } 
    public void setTriples(int tripleCount){ 
     triples = tripleCount; 
    } 
    public void setHR(int homeRunCount){ 
     homeRuns = homeRunCount; 
    } 

    public double getAve(int hits, int bats){ 
     double average = hits/bats; 
     return average; 
    } 
    public String getName(){ 
     String fullName = this.lastName + "," + this.firstName; 
     return fullName; 
    } 
    public boolean equals(){ 

     return true; 
    } 
    public String toString(){ 
     return "Player: "+getName()+"\nAt Bats: "+this.atBats+"\nHits: "+this.hits+"\nDoubles: "+this.doubles+"\nTriples: "+this.triples+"\nHome Runs: "+this.homeRuns; 
    } 
} 

クラス - 私は何をすべきかわからない場所です。私が書く必要があるコードは、このクラスのtoString()メソッドにあります。

public class BatterDB 
{ 
    private ArrayList<Batter> theBatters = new ArrayList<Batter>(); // ArrayList of Batters 
    private int num;    // int to store logical size of DB 

    // Initialize this BatterDB 
    public BatterDB() 
    { 
     num = 0; 
    } 


    public void addBatter(Batter b) 
    { 
     theBatters.add(b); 
     num++; 
    } 


    public Batter removeBatter(Batter b) 
    { 
     return theBatters.remove(0); 
    } 

    // Return logical size of the DB 
    public int numBatters() 
    { 
     return theBatters.size(); 
    } 


    public Batter findBatter(String fName, String lName) 
    { 
     return theBatters.get(0); //change 
    } 


    public void sortName() 
    { 
    } 


    public void sortAve() 
    { 
    } 


    public String toString() 
    { 
     //Where I'm lost 
    } 


    public String toStringFile() 
    { 
     return "toStringFile()"; 
    } 

} 
+0

をあなたは 'thebatters'のリストを反復処理したいし、その後、大きな' STRING'にそれらをCONCAT。正しい? – Searching

+1

'theBatters.stream()。map(b - > b.toString())。collect(Collectors.joining("、 "))' – ifly6

答えて

0

何がやりたいことにList theBattersを回すある:ここでも、その目的は、多分何とか他のクラスで作成されたものオブジェクトのtoString()メソッドを使用して、きれいにフォーマットされた文字列内のすべてのオブジェクトのデータを返すことですStringBatterDBであなたtoString方法では、この操作を行います。

return theBatters.stream() // get all of them in a stream 
    .map(b -> b.toString()) // turn them into strings 
    .collect(Collectors.joining(", ")) // join them with commas 
              // (also can be anything, like "\n" for new lines) 
+0

ダンは完璧に機能しました!私は前にJavaでこれを見たことがない、かなりクール、ありがとう! – Dylan

+1

これはJava 8 Streams APIの一部です(これにより、作業が非常に簡単になります) – ifly6

関連する問題