首页 > 解决方案 > 对如何实现 ArrayList 感到困惑

问题描述

所以我在看 ArrayLists 并且对如何向数组添加元素而没有明确说明 people.add(person1) 一遍又一遍地为每个对象感到困惑。我目前已编译此代码,但不会在控制台中打印任何内容。我认为我的错误是对象构造函数和people.add(this). 我究竟做错了什么?


import java.util.ArrayList;

public class People {

  int age;
  String name;

  static ArrayList<People> people = new ArrayList<People>();

  public People(String name, int age){
    this.name = name;
    this.age = age;
    people.add(this);
  }    

  People person1 = new People("Bob", 41);
  People person2 = new People("Arthur", 32);
  People person3 = new People("Tom",18);

  public static void main(String[] args){

    for(People p : people) {
      System.out.println(p.name);
    }
  }
}

标签: javaarraylistimplementation

解决方案


数组列表是一个static变量。您创建的People对象是非静态变量,仅在调用构造函数时创建。您应该将对象创建移动到main()函数中。

public static void main(String[] args){
  People person1 = new People("Bob", 41);
  People person2 = new People("Arthur", 32);
  People person3 = new People("Tom",18);

    for(People p : people) {
      System.out.println(p.name);
    }
  }

您可以在此处阅读有关静态变量的更多信息


推荐阅读