【问题标题】:Execute commands in ArrayList在 ArrayList 中执行命令
【发布时间】:2019-04-16 21:33:30
【问题描述】:

通常,我会执行以下操作:

System.out.println("Title DVD 1: " + dvd1.getTitle());
System.out.println("Title DVD 2: " + dvd2.getTitle());

然后我会得到DVD 1和DVD 2的标题。如果我想打印100个DVD标题,显然我需要很多

System.out.println.

我设法将这些 System.out.println 放在 ArrayList 中,如下所示:

ArrayList<String> displayDVDList = new ArrayList<String>();

for ( int i = 0; i <= 22; i++) {
    displayDVDList.add("System.out.println(\"Title DVD " + i + " : \" 
        + dvd" + i + ".getTitle());");
    System.out.println(displayDVDList.get(i) + " ");
}

但是,我无法执行那些 System.out.println 来显示标题。那么,如何执行System.out.println命令的ArrayList的值呢?

非常感谢任何帮助。谢谢。

【问题讨论】:

  • 好的,对于初学者,您不能“执行 ArrayList”。你实际上想做什么(不参考你想怎么做)?
  • 如果您将Objects 添加到您的ArrayList,那么在执行get 之后,您可以在actObject,例如ArrayList&lt;DVD&gt; displayDVDList = new ArrayList&lt;DVD&gt;();
  • @Scary Wombat 我不太明白您所说的“添加对象”是什么意思。该怎么做?
  • 我试图有很多这样的: System.out.println("Title DVD 0 : " + dvd0.getTitle()); System.out.println("标题 DVD 1:" + dvd1.getTitle()); System.out.println("DVD 2 标题:" + dvd2.getTitle()); System.out.println("标题 DVD 3:" + dvd3.getTitle()); System.out.println("标题 DVD 4 :" + dvd4.getTitle());

标签: java arraylist


【解决方案1】:

每个答案都有帮助,我正在添加它。第一件事 理解是,你想要打印你的对象的一些属性。采用 对象类中的 toString() 方法,因为它是专门创建的 为了它 。在你的使用 arrayList.toString() 并覆盖 toString() 类。

class Person1
{

    String name ;
    String state;
    public Person1(String name, String state) {
        super();
        this.name = name;
        this.state = state;
    }
    public Person1() {
        super();
    }
    @Override
    public String toString() {
        return "Person [name=" + name + ", state=" + state + "]";
    }

}
public static void main(String[] args) {

        Person nitin = new Person("nitin", "delhi");
        Person chandan = new Person("chandan", "delhi");
        Person anshu = new Person("anshu", "bihar");
        Person rahul = new Person("rahul", "bihar");
        Person amar = new Person("nitin", "UP");

    List<Person> peoples = Arrays.asList(nitin,chandan, anshu, rahul,amar);

    System.out.println(peoples);    


    }

【讨论】:

    【解决方案2】:

    您可以先加载所有内容,然后使用 System.out.println 进行打印。 Java 8 有一种使用流运行的方法。例如:

    ArrayList<String> displayDVDList = new ArrayList<String>();
    displayDVDList.add("Title 1");
    displayDVDList.add("Title 2");
    displayDVDList.add("Title 3");
    displayDVDList.add("Title 4");
    displayDVDList.add("Title 5");
    
    displayDVDList.forEach(System.out::println);
    

    希望对你有帮助!

    【讨论】:

    • 谢谢。但是,这是我想要避免的。我们不是在谈论 5 个项目。也许,数百。
    【解决方案3】:

    假设dvd1dvd2 的类型是一个类Dvd 使用getTitle() 方法,您的代码可能如下所示,其中列表的元素不是String 值,而是Dvd 对象。

    // Build list of DVDs
    Random random = new Random();
    ArrayList<Dvd> displayDVDList = new ArrayList<>();
    for (int i = 0; i <= 22; i++) {
        String dvdTitle = "DVD #" + (random.nextInt(1000) + 1);
        displayDVDList.add(new Dvd(dvdTitle));
    }
    
    // Print list of DVDs
    for (int i = 0; i < displayDVDList.size(); i++) {
        Dvd dvd = displayDVDList.get(i);
        System.out.println("Title DVD " + (i + 1) + ": " + dvd.getTitle());
    }
    

    【讨论】:

    • 我会试试的。感谢您的帮助。
    • 成功了一半。只是现在我必须考虑如何将它们全部加起来。
    • @smalltownstory 也许更好的是让Dvd 自己有一个printtoString 方法
    猜你喜欢
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多