有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我最好如何用原始对象填充这个数组?

我有一个数组:

ArrayList<Person> people = new ArrayList();

我想把人添加到数组中,但我认为这不起作用,因为所有对象都有相同的名称

Person person = new Person();
person.firstName = firstNameTextField.getText();
person.lastName = lastNameTextField.getText();
//Etc
people.add(person);

我的问题是,我可以用相同变量名的对象填充数组吗?如果没有,我如何仍然使用People对象


共 (3) 个答案

  1. # 1 楼答案

    对象与其变量名无关!是的,当然可以

  2. # 2 楼答案

    如果你懒惰,你也可以在人身上使用构造器

    class Person {
     public Person(String firstname, String lastname) { 
     this.firstname=firstname;      
     this.lastname=lastname; 
    }
    }
    

    然后

    people.add(new People("tom", "lastnameoftom"));
    people.add(new People("Susi", "SusisLastname"));
    

    等等

    但是要回答你的问题。。每次在变量上使用新变量时,它都会被重新初始化。编译器将翻译以下内容:

    People people = new People();
    people.setSetter(data);
    
    people = new People();
    people.setSetter(otherdata);
    

    致(例)

    People a = new People();
    a.setSetter(data);
    
    People b = new People();
    b.setSetter(otherdata);
    
  3. # 3 楼答案

    是的,你不会对你所描述的有任何问题

    你会得到这样的结果:

    Person person = new Person();
    person.firstName = firstNameTextField.getText();
    person.lastName = lastNameTextField.getText();
    people.add(person);
    
    person = new Person(); // <  reinitializing person.
    person.firstName = firstNameTextField.getText();
    person.lastName = lastNameTextField.getText();
    people.add(person);
    

    此时,列表包含两个唯一的Person对象。对它们进行迭代可能会出现以下情况:

    ArrayList<Person> people = new ArrayList();
    // add a bunch of Person objects like we did above
    
    for(int i = 0; i < people.size(); i++) {
        System.out.println("Found person: " + people.get(i).firstName);
    }
    

    事实上,你继续创造人民。添加(个人)通话,不一定是你一次又一次地将同一个人添加到你的列表中。在上面所示的情况下,将添加唯一的Person对象,并且可以独立访问,如for循环中所示