自定义了一个Person类,  里面有ID,name,address,telephone字段;我现在有一个List对象,大致数据有
{001,zhangsan,beijing,110;
002,lisi,shanghai,120;
003,wangwu,119;}
请问我该如何把它转成一个String类的字符串数组,方便我调用?
我使用的方法是
     public static void main(String[] args) {  
         List<Person> persons = ListTest.getPersons();  
         
         int n=persons.size();
         String[][] myArray=new String[n][]; //定义二维数组
         for (int i=0;i<n;i++)  //构造二维数组
         {
          List<Person> tempArray= (List<Person>)persons.get(i);
               myArray[i]=(String[])tempArray.toArray(new String[0]);   //注意此处的写法
          }
         //遍历数组
         for(int i=0;i<myArray.length;i++){
          for(int j=0;j<myArray[0].length;j++){
          System.out.println("myArray["+i+"]["+j+"]="+myArray[i][j]);
          }
         }
}

解决方案 »

  1.   

    你干嘛要转换为数组方便调用,原来是ArrayList调用有什么问题么?如果转二维数组,你想要怎么存储,是最后变成
    {{001,zhangsan,beijing,110},{002,lisi,shanghai,120},{003,wangwu,119}}
    这样形式的数组,还是
    {{001,002,003},{zhangsan,lisi,wagnwu},{beijing,shanghai},{110,120,119}}这样的?
      

  2.   

    toArray()转换成一个Object的数组,引用数组元素的时候再转成Person类型不行么?
      

  3.   

    我用了另一种方法
         public static void main(String[] args) {  
             List<Person> persons = ListTest.getPersons();  
             System.out.println(persons.size());
             
             String[][] a =new String[6][4];
             for(Person person : persons) {
              for(int p=0;p<persons.size();p++){
                for(int i=0;i<4;i++){
              a[p][0]=person.getAddress();
              a[p][1]=person.getName();
              a[p][2]=person.getId();
              a[p][3]=person.getMobile();
              }
              }
             }
             for(int n=0;n<6;n++){
              for(int k=0;k<4;k++){
              System.out.println("a["+n+"]["+k+"]="+a[n][k]);
              }
             }
    得到的是同一个人的信息;
      

  4.   

    for(Person person : persons) {
      for(int p=0;p<persons.size();p++){
      for(int i=0;i<4;i++){
      a[p][0]=person.getAddress();
      a[p][1]=person.getName();
      a[p][2]=person.getId();
      a[p][3]=person.getMobile();
      }
      }
      }
    这一段有重复循环吧,改成
    for(int i=0;i<persons.size();i++){
      a[p][0]=persons.get(i).getAddress();
      a[p][1]=person.get(i).getName();
      a[p][2]=person.get(i).getId();
      a[p][3]=person.get(i).getMobile();
    }
    试试
      

  5.   

    这是我提供的一个思路,不清楚你原来List是怎么存数据的import java.util.List;
    import java.util.ArrayList;
    public class ShowPersons {
        public static void main(String[] args) {
            List<Person> persons = ListTest.getPersons();        int n=persons.size();
            String[][] myArray=new String[n][]; //定义二维数组
            for (int i=0;i<n;i++) //构造二维数组
            {
                Person tempArray= persons.get(i);
                myArray[i]=tempArray.toStringAry(); //注意此处的写法
            }
            //遍历数组
            for(int i=0;i<myArray.length;i++){
                for(int j=0;j<myArray[0].length;j++){
                    System.out.println("myArray["+i+"]["+j+"]="+myArray[i][j]);
                }
            }
        }
    }class ListTest{
        public static List<Person>  getPersons(){
            List<Person> persons=new ArrayList<Person>();
            Person p1=new Person("001","zhangsan","beijing","110");
            Person p2=new Person("002","lsi","shanghai","120");
            Person p3=new Person("003","wangwu","guangzhou","119");
            persons.add(p1);
            persons.add(p2);
            persons.add(p3);
            return persons;
        }
    }class Person{
        private String ID;
        private String name;
        private String address;    public String[] toStringAry(){
            String[] ary=new String[3];
            if(ID!=null)
                ary[0]=ID;
            if(name!=null)
                ary[1]=name;
            if(address!=null)
                ary[2]=address;
            return ary;
        }    public String getID() {
            return ID;
        }    public void setID(String ID) {
            this.ID = ID;
        }    public String getName() {
            return name;
        }    public void setName(String name) {
            this.name = name;
        }    public String getAddress() {
            return address;
        }    public void setAddress(String address) {
            this.address = address;
        }    public String getTelephone() {
            return telephone;
        }    public void setTelephone(String telephone) {
            this.telephone = telephone;
        }    private String telephone;    public Person(){}    public Person(String ID, String name, String address, String telephone) {
            this.ID = ID;
            this.name = name;
            this.address = address;
            this.telephone = telephone;
        }
    }
      

  6.   

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Person p1=new Person("001","zhangsan","beijing","110");
            Person p2=new Person("002","lisi","tianjing","120");
            Person p3=new Person("003","wangwu","nanjing","130");
            List<Person> l=new ArrayList<Person>();
            l.add(p1);
            l.add(p2);
            l.add(p3);
            Object[] oj=l.toArray();
            String[][] myArray = new String[oj.length][4];
            for(int i=0;i<oj.length;i++)
            {
             String[] s = oj[i].toString().split(",");
             for(int j=0;j<s.length;j++)
             {
             myArray[i][j] = s[j];
             }
            
            } }