我正在尝试打印a的所有元素List,但是它打印的是指针Object而不是值。
List
Object
这是我的打印代码…
for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); }
任何人都可以帮助我,为什么它没有体现出要素的价值。
这是有关打印出列表组件的一些示例:
public class ListExample {
public static void main(String[] args) { List<Model> models = new ArrayList<>(); // TODO: First create your model and add to models ArrayList, to prevent NullPointerException for trying this example // Print the name from the list.... for(Model model : models) { System.out.println(model.getName()); } // Or like this... for(int i = 0; i < models.size(); i++) { System.out.println(models.get(i).getName()); } }
}
class Model {
private String name; public String getName() { return name; } public void setName(String name) { this.name = name; }
从Java 8开始,List继承了默认的“ forEach”方法,你可以将其与方法引用“ System.out :: println”结合使用,如下所示:
list.forEach(System.out::println);
以下是紧凑的,并且避免了示例代码中的循环(并为你提供了漂亮的逗号):
System.out.println(Arrays.toString(list.toArray()));
但是,正如其他人指出的那样,如果你没有为列表内的对象实现明智的toString()方法,则将获得要观察的对象指针(实际上是哈希码)。无论他们是否在列表中,都是如此。