2016-04-30 5 views
0

私はtoString()メソッドについて理解していますが、外部メソッドが呼び出されたときに戻り型でなければなりません。内容を1行ずつ表示するカスタムArrayList toString()を作成しますか?

下記のコメントブロックは、私が何をしようとしているのかを説明しています。

後で私がセッターとゲッターを使って作業するとき、この知識は非常に貴重です。


import java.util.*; 
public class Display_ArrayList { 

static ArrayList<String> cars = new ArrayList<String>(); 

public static void main(String[] args) { 

    cars.add("Nissan Maxima"); 
    cars.add("Toyota Prius"); 
    cars.add("Renault Clio"); 
    cars.add("Ford Focus"); 
    cars.add("Volkwagen Passat"); 

    System.out.println(""); 
    System.out.println("[Standard toString()]:"); 
    System.out.println(cars.toString()); 

    System.out.println(""); 
    System.out.println("[Custom toString()]:"); 
    System.out.println(custom_cars_toString()); 
} 

// Array list displays the car list all on the same line 
public static String getCarList() { 
    return cars.toString(); 
} 

// ************************************************************************* 
// I want Array list contents to be displayed on their own lines without 
// commas or brackets, while at the same allowing this method to be 
// retrieved by a toString() method 
// ************************************************************************* 
// public static void getCarList() { 
// for (String element : cars) 
// System.out.println(element); 
// } 

public static String custom_cars_toString() { 
    return "The cars contained are: \n" + getCarList(); 
} 
} 

答えて

0

あなただけのtoStringメソッドをオーバーライドするのArrayListを拡張するクラスを作ることができませんか?

public class DisplayArrayList<T> extends ArrayList { 
    @Override 
    public String toString() { 
     String res = ""; 
     for (int i = 0; i < size(); i++) { 
      res += (i == 0 ? "" : "\n") + get(i).toString(); 
     } 
     return res; 
    } 
} 

あなたは、個々の行にそれらのすべてを取得することを印刷するとき、あなたはちょうどその代わりに、ArrayListののDisplayArrayListであなたの車を置くことができます:そして、あなたはこのようなものを作ることができます。例えば

この:

DisplayArrayList<String> list = new DisplayArrayList<>(); 
list.add("test1"); 
list.add("test2"); 
list.add("test3"); 
list.add("test4"); 
list.add("test5"); 
System.out.println(list); 

う出力この:

test1 
test2 
test3 
test4 
test5 

申し訳ありませんが、これはあなたがしたい何をしていない場合、完全にあなたのポストからあなたが欲しいものを見つけ出すことができませんでした。

+0

これは機能しました!どうもありがとうございました。 – gimmegimme

関連する問題