创建一个自定义的ArrayList toString(),逐行显示内容?

时间:2016-04-30 16:46:23

标签: arrays list tostring lines

我理解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();
}
}

1 个答案:

答案 0 :(得分: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

很抱歉,如果这不符合你的要求,就无法完全找出你想要的帖子。