gpt4 book ai didi

java - 打印 ArrayList 的成员

转载 作者:行者123 更新时间:2023-12-01 17:06:50 25 4
gpt4 key购买 nike

当 ArrayList 的引用变量“进入”System.out.println() 时,下面的 ArrayList 成功打印其对象的字段。

输出:[Dal:Tigers, SMU:Tigers, Acadia:Axemen]

当第二个 ArrayList 的 ArrayList 引用“进入”System.out.println() 内部时,它无法打印其对象的字段...

为什么?我什至惊讶地发现 ArrayList 的成员可以通过在 ArrayList 的引用变量上使用输出方法来打印。第二个代码和第一个代码有什么区别?

美国运动类:

import java.util.ArrayList;

class USport {
String school; // creates a field for String
String name; // creates a field for name
public USport( String s, String n) // initializes school and name
{school = s;
name = n;}
public String toString () // for use in output method; returns both
{return school + ":" + name;}
}

public class ArrayListDemo {

public static void main(String a[]) {
ArrayList <USport> v = new ArrayList <> ();
v.add( new USport ("Dal", "Tigers"));
v.add( new USport ("SMU", "Tigers"));
v.add( new USport ("Acadia", "Axemen"));

System.out.println(v);
}
}

城市类:

import java.util.ArrayList; 

public class Cities {
private String pub;
private boolean pubHasDancing;

public Cities(String pub, boolean pubHasDancing){
this.pub = pub;
this.pubHasDancing = pubHasDancing;
}

public static void main(String[]args){
ArrayList <Cities> list2 = new ArrayList <> ();
list2.add(new Cities ("Joce McCartney", false));
list2.add(new Cities ("Paul McCartney", true));
System.out.println(list2); // <<<<<< This is the method I'm questioning
System.out.println(list2.get(1).pub);
System.out.println(list2.toString()); /** <<<< This output should be the same as println's output no */
}
}

最佳答案

因为 USport 声明了一个 toString() 方法来执行打印,而 Cities 则没有。

关于java - 打印 ArrayList 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25194377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com