【问题标题】:Java - How to iterate through an ArrayList for adding elements?Java - 如何遍历 ArrayList 以添加元素?
【发布时间】:2012-11-19 02:32:32
【问题描述】:

我是 java 新手,我想从一个类中获取所有数据。

这就是我向类中添加数据的方式:

String[] arrNames = { "Andrew", "James" ... };
...

for(int i = 0; i < arrNames.length; i++){
   Person person = new Person();
   person.setId(i + 1);
   person.setName(arrNames[i]);
   person.setLastname(arrLastnames[i]);
   person.setIdentifier(arrIds[i]);
   person.setAddress(arrAddreses[i]);
}

如何获取我添加到类中的所有数据?

for(Person p : ???){
   System.out.println(p.getName());
}

【问题讨论】:

    标签: java object arraylist loops


    【解决方案1】:
    List<Person> list = ArrayList<Person>();
    
    for(int i = 0; i < arrNames.length; i++){
       Person person = new Person();
       person.setId(i + 1);
       person.setName(arrNames[i]);
       person.setLastname(arrLastnames[i]);
       person.setIdentifier(arrIds[i]);
       person.setAddress(arrAddreses[i]);
    
       list.add(person); // adding each person object to the list.
    }
    

    【讨论】:

      【解决方案2】:

      例如,将Person 放在列表中:

      List<Person> persons = new ArrayList<Person>();
      for(int i = 0; i < arrNames.length; i++){
         Person person = new Person();
         person.setId(i + 1);
         person.setName(arrNames[i]);
         person.setLastname(arrLastnames[i]);
         person.setIdentifier(arrIds[i]);
         person.setAddress(arrAddreses[i]);
         persons.add(person);
      }
      for(Person p : persons){
         System.out.println(p.getName());
      }
      

      【讨论】:

        【解决方案3】:

        您需要创建一个List&lt;Person&gt; 并将循环中的每个person 添加到该列表中。

        List<Person> personList = new ArrayList<Person>();
        
        for(int i = 0; i < arrNames.length; i++){
           // Create Person
           // Set Attributes
           personList.add(person);
        }
        

        然后遍历该列表以获取每个 Person 实例:-

        for (Person person: personList) {
            System.out.println(person.getName());
        }
        

        【讨论】:

          【解决方案4】:

          在你的循环中引入一个包含人员的列表并将对象添加到其中

          String[] arrNames = { "Andrew", "James" ... };
          ...
          
          List<Person> persons = new ArrayList<Person();    
          for(int i = 0; i < arrNames.length; i++){
             Person person = new Person();
             person.setId(i + 1);
             person.setName(arrNames[i]);
             person.setLastname(arrLastnames[i]);
             person.setIdentifier(arrIds[i]);
             person.setAddress(arrAddreses[i]);
          
             persons.add(person);
          }
          

          然后你可以像这样遍历列表

          for(Person p : persons){
             System.out.println(p.getName());
          }
          

          【讨论】:

            【解决方案5】:
            List<Person> people = Arrays.asList(new Person(1, "Andrew", "Surname1", "address1"), new Person(2, "James", "Surname2", "address2"));
            
            for(Person p : people){
               System.out.println(p.getName());
            }
            

            【讨论】:

              【解决方案6】:

              这么快ArrayList底漆:

              List<Person> list = new ArrayList<Person>();
              //Code to add stuff
              
              for (Person p : list) {
                //Do something with p to your heart's desire.
              }
              

              或者

              for (int i = 0; i < list.size(); i++) {
                Person reference = list.get(i);
              }
              

              添加东西但是你的循环是有缺陷的。每次迭代您只需用新数据覆盖person。您需要将其添加到列表中。

              List<Person> people = new ArrayList<Person>();
              
              for(int i = 0; i < arrNames.length; i++){
                 Person person = new Person();
                 person.setId(i + 1);
                 person.setName(arrNames[i]);
                 person.setLastname(arrLastnames[i]);
                 person.setIdentifier(arrIds[i]);
                 person.setAddress(arrAddreses[i]);
              
                 people.add(person);
              }
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2015-11-16
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-10-08
                • 2015-12-27
                • 1970-01-01
                • 2021-03-22
                相关资源
                最近更新 更多