import java.util.ArrayList;
public class TestPerson2{ /**
 * @param args
 */
public static void main(String[] args) {

//Person2[] p = new Person2[5];
//p[0]= new Person2("li", 44, 2300);
//p[1]= new Person2("zhang", 44, 2300);
//p[2]= new Person2("wang", 44, 2300);
//p[3]= new Person2("zhao", 44, 2300);
//p[4]= new Person2("ma", 44, 2300);

//for (int i=0; i<p.length; i++){
// System.out.println("name:" + p[i].name + " age:" + p[i].age + " salary:" + p[i].salary );
//}

ArrayList<Person2> a = new ArrayList<Person2>();

a.add(new Person2("Li", 44, 2300));
a.add(new Person2("Zhang", 40, 3000));

for(int i =0 ; i<a.size() ; i++){
System.out.println(......);
}


}}class Person2{

String name;
int age;
double salary;

Person2(String name, int age, double salary){
this.name = name;
this.age = age;
this.salary = salary;
}

public String getName(){
return name;
}
}
System.out.println(......);这里该怎么输出呢,就象我注释掉的普通数组那样按行分别输出name,age和salary。

解决方案 »

  1.   

    System.out.println("name:"+a[i].name+"age:"+a[i].age+" salary:" + a[i].salary )ArrayList 动态数组本质上还是一个数组啊,所以跟你之前的是很类似的
      

  2.   

    实现一个toString方法就可以直接输出了;import java.util.ArrayList;public class TestPerson2{ /**
     * @param args
     */
    public static void main(String[] args) {
            ArrayList<Person2> a = new ArrayList<Person2>();
            
            a.add(new Person2("Li", 44, 2300));
            a.add(new Person2("Zhang", 40, 3000));
            
            for(int i =0 ; i<a.size() ; i++){
                System.out.println(a.get(i));
            }
        }
    }class Person2{ String name;
    int age;
    double salary; Person2(String name,int age,double salary){
    this.name=name;
    this.age=age;
    this.salary=salary;
    } public String getName(){
    return name;
    }

    public String toString(){
    return "name:" + name + " age:" + age + " salary:" + salary;
    }
    }
      

  3.   

    如果你不想用toString()的话,你也可以这样
    import java.util.ArrayList;
    import java.util.List;
    public class TestPerson2{
        public static void main(String[] args) {        
            List<Person2> a = new ArrayList<Person2>();
            Person2 person = null;
            a.add(new Person2("Li", 44, 2300));
            a.add(new Person2("Zhang", 40, 3000));
            
            for(int i =0 ; i<a.size() ; i++){
                person = a.get(i);
                System.out.println("name: "+
                 person.name+" "+"age: "+
                 person.age+" "+"salary: "+
                 person.salary);
            }
            
            
        }}class Person2{
        
        String name;
        int age;
        double salary;
        
        Person2(String name, int age, double salary){
            this.name = name;
            this.age = age;
            this.salary = salary;
        }
        
        public String getName(){
            return name;
        }
    }
      

  4.   

    import java.util.ArrayList;public class TestPerson2{    /**
         * @param args
         */
        public static void main(String[] args) {
            ArrayList<Person2> a = new ArrayList<Person2>();
            
            a.add(new Person2("Li", 44, 2300));
            a.add(new Person2("Zhang", 40, 3000));
            
            foreach(Person2 p in a){
                System.out.println(p);
            }
        }
    }class Person2{    String name;
        int age;
        double salary;    Person2(String name,int age,double salary){
            this.name=name;
            this.age=age;
            this.salary=salary;
        }    public String getName(){
            return name;
        }
        
        public String toString(){
            return "name:" + name + " age:" + age + " salary:" + salary;
        }
    }集合的遍历一般用foreach()