【问题标题】:Make a custom ArrayList toString() that displays contents line by line?制作一个自定义的 ArrayList toString() 逐行显示内容?
【发布时间】:2016-08-25 17:59:03
【问题描述】:

我理解 toString() 方法,当调用外部方法时,它们必须是返回类型。

下面的评论块描述了我正在尝试做的事情。

以后当我与 setter 和 getter 一起工作时,这些知识肯定会非常宝贵。


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

【问题讨论】:

    标签: arrays list tostring lines


    【解决方案1】:

    你不能只创建一个类来扩展 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
    

    很抱歉,如果这没有达到您想要的效果,无法从您的帖子中完全弄清楚您想要什么。

    【讨论】:

      猜你喜欢
      • 2022-06-28
      • 1970-01-01
      • 2018-01-18
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      相关资源
      最近更新 更多