自定义了一个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]);
}
}
}
{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]);
}
}
}
解决方案 »
- 异异异...异常来袭:java.sql.SQLException: Incorrect string value: '\xE3\x80\x90\xE9\x80\
- 急急急求SOCKET代码 要求发送到指定IP和端口 然后接收到返回字段 会话结束!
- JAVA 调试出现异常,求解
- 问一个新手问题?
- JAVA 文字列相同元素删除
- Java高手帮忙下
- 随机取一个日期,用JAVA如何算出这个日期所在月的最后一天?在线急等,谢了!
- bean里不能定义int型的成员变量吗
- java 做服务器时,可以向C SOCKET发送,也可以接收C来的数据,但C做服务器时,不行
- 迷惑的类路径问题
- java 内存分配问题
- java线程池
{{001,zhangsan,beijing,110},{002,lisi,shanghai,120},{003,wangwu,119}}
这样形式的数组,还是
{{001,002,003},{zhangsan,lisi,wagnwu},{beijing,shanghai},{110,120,119}}这样的?
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]);
}
}
得到的是同一个人的信息;
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();
}
试试
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;
}
}
// 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];
}
} }