2016-04-30 66 views
0

我明白toString()方法,它們必須是返回類型,當調用外部方法時。製作一個自定義的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

你就不能作出這樣的擴展的ArrayList其覆蓋toString方法的類?然後,你可以做這樣的事情:

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; 
    } 
} 

然後,你可以把你的車在一個DisplayArrayList,而不是一個ArrayList,然後在打印時,你會得到他們所有的個人行。

例如這樣的:

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

相關問題